算法
Avavavaava、
我好菜啊
展开
-
日撸leetCode三道题---Day5---双指针与链表
第五天是关于链表js的初步应用第一题是删除中间节点最巧妙的方法就是快慢指针var middleNode = function(head) { var slow = head var fast = head while(fast&&fast.next){ slow = slow.next fast = fast.next.next } return slow};以快指针为循环条件,在原创 2021-10-17 14:57:06 · 299 阅读 · 1 评论 -
日撸leetCode三道题---Day4---双指针和字符串
第一题反转字符串啊,还是非常简单的常规思路var reverseString = function(s) { var temp for(var i=0;i<s.length/2;i++){ temp = s[s.length-1-i] s[s.length-1-i] = s[i] s[i] = temp } return s};另外还有更简单解法,三行代码实现极致压缩,利用for循环,添加两个循环条件,两个指针原创 2021-10-16 14:48:38 · 678 阅读 · 0 评论 -
日撸力扣三道题---Day3---数组算法+二分查找
今天主要是对前两天的引用,一道题是在一个数组中将不是0的数提前,0放到数组末尾,尽量在原数组上进行操作解题思路是直接遍历将所有的非零数移动,改下标代码实现var moveZeroes = function(nums) { var indexNum= 0 var NowIndex = 0 //把不为零的补到前面去,后面直接加0 while(indexNum<nums.length){ if(nums[indexNum]!=0){原创 2021-10-15 16:34:09 · 284 阅读 · 0 评论 -
日撸leetCode三道题---Day2---关于数组的算法1
1.将数组平方排序运用好js极简特性,三行代码解决主要对map遍历以及sort排序的运用var newNums = nums.map(num=>num*num)newNums.sort((a,b)=>a-b)return newNums2.数组的翻转(轮播)个人喜欢整体反转再分段反转,时间复杂度是log(n)const reverse = (nums,start,end)=>{ while(start<end){ var temp = num原创 2021-10-14 19:42:51 · 133 阅读 · 0 评论 -
日撸leetCode三道题---Day1---二分查找
二分查找时间复杂度为O(log(n))针对有序数组//定义查找区间var low = 0var high = n//循环查找while(low<high)//这里不能等于,不然会越界{ var mid = Math.floor(low+(high-low)/2) if(target>nums[mid]){ low = mid+1 }else if(target ==nums[mid]){ return mid }e原创 2021-10-13 20:00:43 · 59982 阅读 · 0 评论