![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
哆啦咪唏
这个作者很懒,什么都没留下…
展开
-
leetcode——重建二叉树
【题目描述】:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。【主要思路】:前序遍历是按照根节点、左节点、右节点的顺序进行,中序遍历是按照左节点、根节点、右节点的顺序进行遍历。前序遍历序列中的第一个元素对应整个树的根节点rootNode,在中序遍历序列中找到rootNode所在位置rootIndex,rootIndex原创 2021-02-16 14:34:50 · 155 阅读 · 0 评论 -
leetcode——反转链表
【题目描述】输入一个链表,反转链表后,输出新链表的表头。function ListNode(x){ this.val=x; this.next=null;}function reverseList(head){ let pre=null, temp=null; while(head){ temp=head.next; head.next=pre; pre=head; head=temp; } return pre;}...原创 2021-02-16 14:02:55 · 77 阅读 · 0 评论 -
剑指offer——替换空格
【题目描述】请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路一:将字符串进行遍历function replaceSpace(str){ let arr=str.split(''); let res=arr.map(item=>item===' '?item='%20':item); return res.join('').toString();}思路二:原创 2021-02-16 10:50:03 · 79 阅读 · 0 评论 -
剑指offer——二维数组中的查找
【题目描述】在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。【主要思路】因为二维数组是有序递增的,每一行最左边的元素是最小的,从左到右递增。。用i(行数),j(列数)来标记元素在当前数组中的位置。若target>array[i][j],说明目标元素比较大,此时应向数组右边移动,所以j++;若这一行所有元素都进行比较之后仍然没有找到与target相等的元素原创 2021-02-16 10:29:40 · 75 阅读 · 0 评论 -
多数元素
多数元素Leetcode169 简单题目描述:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。思路:抵消思想(摩尔投票法),哈哈哈,想到了动物世界里面李易峰帅气的推理。回归正题,定义变量count=1,temp=arr[0],temp作为比较数之一,一直和数组中的其他元素进行比较。从数组第二个元素开始比较,如果与temp相同,则count+1,若不同则count-1; 当c原创 2021-01-21 10:51:22 · 132 阅读 · 0 评论 -
只出现一次的数字
只出现一次的数字leetcode136题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。//js的indexOf和lastIndexOf()方法var singleNumber = function(nums) { for(let i=0,len=nums.length;i<len;i++){ if(nums.indexOf(nums[i])==nums.lastIndexOf(nums[i])){原创 2021-01-20 22:18:01 · 52 阅读 · 0 评论 -
js实现二叉树的先序,中序,后序遍历,采用递归和非递归两种方法。
js实现二叉树的先序、中序、后序遍历,采用递归和非递归方法递归方法实现:function TreeNode(x){ this.val=val; this.left=null; this.right=null;}// 递归方法function threeOrders(root){ let preArray=[],middleArray=[],lastArray=[]; //先序遍历:根、左、右 function preOrder(root){原创 2021-01-16 13:08:35 · 978 阅读 · 2 评论 -
合并两个有序整数数组
合并两个有序整数数组为一个数组。用js实现。已知有序数组A和B,返回合并后的有序数组res。主要思想是 先比较A和B的最后一个元素,将较大的元素放入res的最后一位,同时将该元素所在的数组长度减一。一直循环,直到某个数组长度为零为止。 此时,还需要判断另外一个数组是否长度为零,若不为零,则也将其全部放入res中。 // 合并两个有序数组 function merge(A, B) { let m = A.length, n = B.length;原创 2021-01-15 20:46:40 · 549 阅读 · 0 评论 -
LeetCode之两数相加
LeetCode(2)// 两数相加,用链表表示 2->4->3 + 5->6->4 = 7->0->8 342+465=807function ListNode(val) { this.val = val; this.next = null;}function addTwoNumber(v1, v2) { let Node = new ListNode('head'); let temp = Node; le原创 2020-06-15 21:58:37 · 128 阅读 · 0 评论 -
Leetcode之两数之和
leetcode(1)两数之和两数之和// 从给定数组arr中找出两个元素的和为target,返回两个元素的下标。两个元素不能重复,且每个数组中只能返回一组答案。// 1.暴力法 function sum(arr, target) { for (let i = 0; i < arr.length; i++) { let temp = target - arr[i]; for (let j = i + 1; j < arr.length; j++)原创 2020-06-15 20:01:58 · 95 阅读 · 0 评论 -
选择排序
选择排序 public void selectSort(int [] arr) { for(int i=0;i<arr.length-1;i++) { int min=arr[i]; for(int j=1+i;j<arr.length;j++) { if(arr[j]<min) { int temp=arr[j]; arr[j]=...原创 2019-03-28 09:29:52 · 219 阅读 · 2 评论 -
刷题
LeetCode one——Two sum(补充)这道题目着重考察的是hashMap的key-value关系。题目要求是2+7=9,所以将 m.put(nums[i], i); 放在if判断前也是可行的。但是当若题目中的要求变为2+2=4时,就不能放在前面了。这是为什么呢?本人也是刚开始刷题,菜鸟一枚。想了一下午,归结于 放在前面就会出现key-value覆盖的问题。不知道对不对,有好...原创 2019-02-22 16:30:51 · 122 阅读 · 3 评论 -
开始刷题了
开启我的csdn之旅真正意义上的第一篇博客虽然很早就申请了账号,但是一直都是膜拜大神的各种文章。今天借着刷LeetCode的冬风,开启我的记录之旅。希望这也能督促我一直写下去,一直有收获吧。下面就开始正文LeetCode one——Two sumGiven an array of integers, return indices of the two numbers such that t...原创 2019-02-22 12:29:51 · 149 阅读 · 2 评论