- 博客(19)
- 资源 (4)
- 收藏
- 关注
原创 53. 最大子序和
题目:吐槽:从任何一个位置开始,只要相加的和<0就把前面的数全都舍弃,拿当前的数和最大值进行比较,留下最大的数。和小于0的结果对后面数相加增大没有任何的帮助。代码:public int maxSubArray(int[] nums) { //返回的结果,求和的最大值 int result = nums[0]; //求的的连续子...
2019-09-17 15:37:06
525
原创 112. 路径总和
题目:吐槽:题目中有个重点的概念,从根节点到叶子节点。叶子节点 的概念是:左孩子为null,右孩子也为null。代码:递归版本 public boolean hasPathSum(TreeNode root, int sum) { //该终止条件:1.root开始为null的返回。2.递归到叶子节点后不满足条件的再次循环的结束条件 if(r...
2019-09-17 15:14:45
164
原创 62. 不同路径
题目:吐槽:可以通过数学分析得出计算公式。表达出公式就可以A掉这个题。代码/** * * 得出计算公式C(m+n-2,Math.min(m-1,n-1)),m+n-2是总的要走的步数,Math.min(m-1,n-1)是往一个方向要走的步数(我们选择最小的那个方向)。 * @param m * @param n * @return...
2019-09-12 14:29:15
184
原创 122. 买卖股票的最佳时机 II
题目:吐槽:1)只要你理解题目,当天卖了可以再当天买2)只要你炒过股做波段可以降低成本。就可以很容易A掉这个题目代码:贪心算法 public static int maxProfit1(int[] prices) { //返回结果最多能赚多少钱 int result = 0; for(int i =1;i<prices.l...
2019-09-11 14:15:15
313
原创 121. 买卖股票的最佳时机
题目:吐槽:A掉很简单的题目,穷举就可以了。写动态规划的时候发现,这个思路有点跟滑动门的算法有点类似。穷举法:/** * 双重循环把后面的一次减去前面的值,将最大值保存住即可 * @param prices * @return */public int maxProfit(int[] prices) { int max =...
2019-09-11 11:22:18
171
原创 976. 三角形的最大周长
题目:吐槽:排序好,从后往前,两边之和大于第三边,数学类的问题。代码: public int largestPerimeter(int[] A) { if(A.length<3){ return 0; } //边从小达大排序 Arrays.sort(A); //从后往前两...
2019-09-10 18:24:08
276
原创 746. 使用最小花费爬楼梯
题目:吐槽:1.首先作为一个动态规划的题目,我的解题方式都是先写递归版本的再改成非递归版本的,然而在网上别人的答案都直接是非递归版本,边界解释的也不清楚,最后自己一点点调试折腾了半天,感觉还是很有收获的。2.这个题目代码虽然简单,看似是个水题,但是分的情况其实是很多的,在第一次A这种题的情况下想把代码写的很精炼我觉得难度还是很大的,所以我把各种情况的判断,分解出来。代码:递归版...
2019-09-10 18:20:26
178
原创 70. 爬楼梯
题目:吐槽:1.算一个动态规划的题目,动态规划的题目有一个通用的解体方案:1)写出递归版本。2)写出记忆化搜索的版本3)动态规划版本(就是递归改非递归的方式)。2.似于斐波纳挈数列.假设梯子有n层,到达n层的时候要么是从n-1层上来的,要么是从n-2层上来的。从n-1层上来只有一种方法,从n-2层上来有2种方法。f(n) = f(n-1)+f(n-2)代码:递归版本: p...
2019-09-10 11:20:17
166
原创 75. 颜色分类
题目:吐槽:就是一个变相的荷兰国旗问题,也是三路快排的partition的过程。代码:public void sortColors(int[] nums) { //很明显的荷兰国旗问题,三路快排的一个步骤 int l = -1; int r = nums.length; int i = 0; int...
2019-09-03 11:54:51
213
原创 1030. 距离顺序排列矩阵单元格
题目:吐槽:1.首先要知道这是个排序的题目。2.将矩阵转换成需要返回的数据格式[C*R][2]的二维数组。3.以一维数组的角度进行比较排序。代码:public int[][] allCellsDistOrder(int R, int C, final int r0, final int c0) { //1.将矩阵转换成,需要输出的二维数组格式。 i...
2019-09-03 11:33:58
301
原创 147. 对链表进行插入排序
题目:吐槽:直接的想法就是将链表转换成数组,通过插入排序排号序,然后再给链表重新赋值。(letcode不能使用Vector)代码: public static ListNode insertionSortList(ListNode head) { //复制头节点用于赋值和返回 ListNode copy = head; //1.计算...
2019-09-03 10:26:28
142
原创 349. 两个数组的交集
题目:吐槽:解法很多,能A掉就行了。有些快捷的思路可以从其它题目中再学。代码:public static int[] intersection(int[] nums1, int[] nums2) { //1.将两个数组排序 Arrays.sort(nums1); Arrays.sort(nums2); int cou...
2019-09-02 15:38:31
144
原创 206. 反转链表
题目:吐槽:反转链表经典的解题步骤,通过pre head next三个标志位进行转换进行反转。熟能生巧的思路,多练习,就记住了代码:public ListNode reverseList(ListNode head) { //定义好辅助标记位,其顺序是pre head next ListNode pre = null; ListNo...
2019-09-02 14:52:10
149
原创 142. 环形链表 II
题目:吐槽:有一个结论,用数学公式推导出来的,后来也就记住了。当判断快慢指针相交后,将快指针重新指回head处,然后跟慢指针一起一步一步的走,再次相等的点便是成环点。代码: public ListNode detectCycle(ListNode head) { ListNode low = head; ListNode fast = head;...
2019-09-02 14:44:41
133
原创 141. 环形链表
题目:吐槽:题目只是判断是否是有环的链表,没有让找到成环的点,所以是个比较简单的题目,常使用双指针来进行判断。代码:public boolean hasCycle(ListNode head) { //1.将快慢指针都指向头节点 ListNode low = head; ListNode fast = head; /...
2019-09-02 14:25:47
156
原创 92. 反转链表 II
题目描述:吐槽:链表反转的升级版本,细致的题目,思路写完debug一点点调试,怎么都能过。修改完成总结一下会有比较大的收获。代码:public static ListNode reverseBetween(ListNode head, int m, int n) { //统计节点的个数 int count = 1; //保存头部节点...
2019-09-02 13:57:51
184
原创 160. 相交链表
题目链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/submissions/ 题目描述: 题目问题和难点: 1.是找相交的那个节点,而不是值相等的节点。(示例中1的值相同但不是相交的节点) 2.此题目不考虑有环的链表所以思路很简单。 public static ListNode getIntersectionNode(ListNode headA, ListNode headB) { if(headA == null|
2019-09-01 12:03:00
194
原创 选择排序,插入排序,冒泡排序的区别
首先要了解这三个排序的定义:1.选择排序:它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。public void choiseSort(int []arrys,int n ){ for(int i =0;i<n;i++){ int count = i;//记录最小数值的数组索引 for(int j =i+
2017-10-27 15:24:46
2609
原创 1. Two Sum
Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution.Example:Given nums =
2016-12-12 10:30:37
196
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅