算法的时间复杂度应该为 O(log (m+n)) 。
输入:nums1 = [1,3], nums2 = [2]
输出:2.00000
解释:合并数组 = [1,2,3] ,中位数 2
var findMedianSortedArrays = function(nums1, nums2) {
let arr = [...nums1, ...nums2];
// console.log(arr);
arr = arr.sort((a,b)=>a-b);
// console.log(arr);
if (arr.length % 2 === 0) {
// 4 1,2
return ((arr[arr.length / 2] + arr[arr.length / 2 - 1]) / 2).toFixed(5);
} else {
return arr[(arr.length - 1) / 2].toFixed(5);
}
};
思路:将两个数组合并、排序,然后长度分奇偶分别得出结果。
如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。
输入:s = “babad”
输出:“bab”
解释:“aba” 同样是符合题意的答案。
function longestPalindrome(s) {
let res='';
for(let i=0;i=0 && r
解题思路:主要是执行fn函数,并且要将数组作为参数传递给fn,可以考虑使用改变this指向的函数call()、或apply() [之所以不用bind ,是因为bind不能立即执行fn函数],要注意这两种函数的参数形式。
输入描述:
namespace({a: {test: 1, b: 2}}, ‘a.b.c.d’)
输出描述:
{a: {test: 1, b: {c: {d: {}}}}}
function namespace(oNamespace, sPackage) {
let arr = sPackage.split('.');
arr.forEach(item => {
if (typeof oNamespace[item] != 'object') {
oNamespace[item] = {};
}
oNamespace = oNamespace[item]
})
}
str.charCodeAt(index)
方法,str是字符串,index是索引,该方法返回指定索引字符的unicode编码.
输入:‘hello world, 牛客’, false
输出:17
function strLength(s, bUnicode255For1) {
if (bUnicode255For1 === true) {
return s.length;
} else {
let a = 0;
for (let i = 0; i < s.length; i++) {
if (s.charCodeAt(i) > 255) {
a += 2;
} else {
a += 1;
}
}
return a;
}
}
1、返回的结果为调用 fn 之后的结果
2、fn 的调用参数为 callIt 的第一个参数之后的全部参数
var fruits = [“Banana”, “Orange”, “Lemon”, “Apple”, “Mango”];
var myBest = fruits.slice(-3,-1); // 截取倒数第三个(包含)到倒数第一个(不包含)的两个元素
var myBest = fruits.slice(-3); // 截取最后三个元素
数组截取指定位置的元素:arr.slice(start[,end])
var f = ['b','a','c','d']; f.slice(-3,-1) // 截取倒数第三个(包含)到倒数第一个(不包含)的两个元素
function callIt(fn) {
let r=[...arguments];
r = r.slice(1)
return fn.apply(null,r)
}
1、bit 从 1 开始
2、返回 0 或 1
3、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1
function valueAtBit(num, bit) {
let n = num.toString(2);
let s = parseInt(n.charAt(n.length - bit))
return s;
}
toString() 方法可把一个Number对象转换为一个字符串,并返回结果。
NumberObject.toString(radix)
,radix 可选。规定表示数字的基数,是 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。num.toString(2)将num转换为二进制
。
数字的字符串表示。例如,当 radix 为 2 时,NumberObject 会被转换为二进制值表示的字符串。
实例:
var number = new Number(1337);
console.log(number.toString()) // 1337
console.log(number.toString(2)) // 10100111001