Algorithm
izwell
这个作者很懒,什么都没留下…
展开
-
剑指offer-整数求和
题目如下:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号解题思路是使用位运算操作来实现加法。下面举个列子:num1 = 101 ; num2 = 11;101 + 11进行异或运算 101 ^ 11 = 110 //得到没有进位的相加结果n1进行与运算 101 & 11 = 001 //得到需要进行进位的结果n2进行进位结果的...原创 2018-11-20 17:16:41 · 190 阅读 · 0 评论 -
二叉树系列(1)-实现排序二叉树
排序二叉树就是在一棵普通的数的基础上,一个节点的左节点的值一定小于这个节点的值,右节点的值大于这个节点的值。每棵树都是由节点生成的,每个节点都有左右节点两个属性,用JS来实现如下:function Node(data){ this.data = data; this.left = null; this.right = null;}每棵树都是由根节点构成,且树本身需要一个插入的方法...原创 2019-02-22 14:22:59 · 506 阅读 · 0 评论 -
JS大数相加
记得之前看到过一个JS超大正整数相加的题目,今天想了下自己会怎么实现,于是便进行了尝试,代码如下:function bigAdd(a, b){ let lenA = a.length, lenB = b.length, curry = 0, res = []; let loopLen = Math.max(lenA, lenB ); for(let...原创 2019-01-07 18:42:41 · 1694 阅读 · 0 评论 -
剑指offer--圆圈中最后剩下的数
每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一个小朋友...原创 2018-12-21 16:59:32 · 157 阅读 · 0 评论 -
剑指offer--变态跳台阶
题目如下:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路:在这道题目之前,其实还有一个简单的青蛙跳台阶,就是青蛙可以跳一次和跳两次,这个其实很简单也没啥好说的,使用递归就可以得到我们想要的结果。我们看看这道题,我一开始的想法也是使用递归,最后发现其实还是那么回事。。。假设 青蛙跳到n级的方法是 F(n)那么F...原创 2018-12-01 11:03:10 · 188 阅读 · 0 评论 -
剑指offer--旋转数组的最小值
题目如下把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路:有三种思路很简单了,遍历数组取得最小值。我最开始就是这种想法。。。太low了functio...原创 2018-12-01 10:40:51 · 232 阅读 · 0 评论 -
剑指offer-矩阵中的路径
题目描述:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为...原创 2018-11-22 17:28:23 · 170 阅读 · 0 评论 -
剑指offer-和为S的两个数
题目如下:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出解题思路:遍历数组中的每一项,对每一项进行如下操作当前项为n1,用S - n1 得到 nextHalf如果nextHalf 小于等于当前值n1,退出循环如果nextHalf大于当前值,在数组...原创 2018-11-21 17:03:44 · 132 阅读 · 0 评论 -
剑指offer-扑克牌顺序
题目如下:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的...原创 2018-11-21 16:51:39 · 223 阅读 · 0 评论 -
剑指offer-求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
题目如下:求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)本题考的知识点就两点&& 运算符false && true => false;true && exp => exp;当表达式的前半部分的值是false时,结果就是fals...原创 2018-11-21 16:25:46 · 163 阅读 · 0 评论 -
JS排序算法
这里简单的总结一下排序算法中的4种1、冒泡排序2、选择排序3、插入排序4、快速排序1 冒泡排序冒泡排序就是循环遍历,两两进行比较排大小function BubleSort(s){ for(let i = 0; i < s.length; i++){ for(let j = i; j < s.length; j++){ s[j] > s[j-1] &am...原创 2019-02-18 22:43:29 · 268 阅读 · 0 评论