jieleejie
jieleejie
全部文章
分类
题解(11)
归档
标签
去牛客网
登录
/
注册
jieleejie的博客
全部文章
(共10篇)
题解 | #二进制转换#
方法一:toString()Number.toString([radix]):返回指定 Number 对象的字符串表示形式;radix指定要用于数字到字符串的转换的基数(从2到36)。如果未指定 radix 参数,则默认值为 10 function valueAtBit(num, bit) { ...
2021-05-10
31
753
【剑指offer】跳台阶扩展问题
解题思路:见跳台阶扩展问题 讨论榜第一 function jumpFloorII(number) { // write code here if(number === 1 || number === 0){ return 1; }else{ r...
2021-04-06
0
450
【剑指offer】旋转数组的最小数
首先,直接找最小元素也能过 function minNumberInRotateArray(rotateArray) { return Math.min.apply(Math,rotateArray); }二分查找注意两点: 对于数组[5 6 1 2 3 4], rotateArray[m...
2021-04-01
0
544
剑指 Offer 50. 第一个只出现一次的字符
巧解 for(let s of str){ if(str.indexOf(s) === str.lastIndexOf(s)){ return str.indexOf(s); } } return -1; 使用哈希表https://leetcode-cn.c...
2021-03-31
0
526
《剑指offer》 第65题 不用加减乘除做加法
分步考虑: 首先只做加法,不考虑进位问题。1+0=1;0+1=1;0+0=0;1+1=0(不考虑进位),所以相当于做 异或 运算 接着只考虑进位。只有1+1会发生进位,所以相当于做按位与运算。与运算的结果中为1的位说明该位发生进位。 发生进位应该左移一位。若没发生进位,则相与的结果为0,左移一位还...
2021-03-26
0
633
【剑指offer】用两个栈实现队列 -- JavaScript实现
举例说明1 2 3进栈stack1 = 1 2 3stack2 = null将stack1的数据转移到stack2,注意先进后出stack1 = nullstack2 = 3 2 1此时若 1 要出栈,直接stack2.pop即可。stack1 = nullstack2 = 3 22 出栈stack...
2021-03-25
0
575
剑指offer 51. 构建乘积数组
B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1],拆分一下left = A[0]A[1]...A[i-1],right = A[i+1]...A[n-1],则B[i] = left * right。具体点可见下图(图取自牛客)蓝色部分为left,红色部分为right。1为边...
2021-03-24
0
568
剑指offer-JZ13:调整数组顺序使奇数位于偶数前面
基本思路:利用冒泡的思想,碰到奇数则往前移 利用nthOdd来记录当前是第n个奇数,nthOdd初始化为-1,碰到第一个奇数,nthOdd自增为0,刚好对应数组下标。循环一趟,若碰到奇数,则nthOdd+1,接着把该奇数前面的偶数都往后移,将该奇数放到第nthOdd位。 function reOrd...
2021-03-22
9
1166
《剑指offer》 第39题 数组中出现次数超过一半的数字
排序法 简单明了 但是时间复杂度为O(nlogn) function MoreThanHalfNum_Solution(numbers) { let sortedArr = numbers.sort(); let mediumIndex = Math.floor(sortedAr...
2021-03-20
0
613
剑指Offer 03. 数组中重复的数字-巧解:set
利用set的不重复特性。把数组中的元素一个个添加到set中,如果某一元素添加过后,set的长度没有改变,说明该元素重复! let mySet = new Set(); for (let i = 0; i < numbers.length; i++){ let setLe...
2021-03-20
29
1252