随笔分类 -  leetcode

经典的排序算法
摘要:1、冒泡 void BubbleSort(int[]nums,int n){ for(int i=0;i<a.length;i++){ flag=0; for(int j=0;j<a.length-1-i;j++){ if(a[j]<a[j+1]){ int tmp=a[j]; a[j]=a[j+1 阅读全文

posted @ 2020-03-31 21:28 hdc520 阅读(172) 评论(0) 推荐(0) 编辑

回溯法详解
摘要:一、概述 解决一个回溯问题,实际上就是一个决策树的遍历过程。只需要考虑以下三个问题: (1)路径:已经做出的选择。 (2)选择列表:也就是你当前所做出的选择。 (3)结束条件:也就是到达决策树底层,无法在做出的条件。 注意: (1)ans为全局变量 (2)路径最后新建如:ans.add(new Ar 阅读全文

posted @ 2020-03-22 21:40 hdc520 阅读(582) 评论(0) 推荐(0) 编辑

二分查找模板
摘要:一、二分查找先设定左侧下标 left 和右侧下标 right,再计算中间下标 mid每次根据 nums[mid] 和 target 之间的大小进行判断,相等则直接返回下标,nums[mid] < target 则 left 右移,nums[mid] > target 则 right 左移查找结束如果 阅读全文

posted @ 2020-02-18 12:15 hdc520 阅读(172) 评论(0) 推荐(0) 编辑

算法Top的几种解法
摘要:一、全局排序 任何排序算法均可,但是时间复杂度或者空间复杂度不符合要求。明明只需要TopK,却将全局都排序了,这也是这个方法复杂度非常高的原因。那能不能不全局排序,而只局部排序呢?这就引出了第二个优化方法局部排序。 二、局部排序 (1)冒泡排序:每冒一个泡,找出最大值,冒k个泡,就得到TopK 伪代 阅读全文

posted @ 2019-12-25 21:54 hdc520 阅读(823) 评论(0) 推荐(0) 编辑

leetcode之删除数组中的重复值(26题)
摘要:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前 阅读全文

posted @ 2019-06-13 17:11 hdc520 阅读(168) 评论(0) 推荐(0) 编辑

导航