- 博客(10)
- 收藏
- 关注
原创 【leetcode】283 移动零
方法一 暴力解法(二次遍历)时间复杂度O(N)把非0的往前挪,挪完之后,后面的就都是0了,然后再用0覆盖后面的。这种是最容易理解也是最容易想到的,代码比较简单class Solution { public void moveZeroes(int[] nums) { if (nums.length == 0 || nums == null){ return; } int index = 0; for (in
2020-11-19 17:19:44
94
原创 【leetcode】【股票问题】121 买卖股票的最佳时机
方法一 一次遍历对于这道题我们其实可以使用一次循环来实现,先来看下面的这张折线图:我们在每个节点其实只会做两件事(第一个节点除外),分别是:买入或卖出。可以用一个循环来计算出最大的利润,只需要依次对于每个节点做以下两个判断:判断当前节点是不是相对最低价,如果是,则将它设置为最低价(也就是买入);如果当前节点不是最低价,那我们就将它卖出,然后计算卖出的收益(当前节点减去相对最低价),如果卖出的收益大于目前的最高收益,则将此值设置为最高收益。这样循环完成之后最高收益就出来了class Soluti
2020-11-17 22:41:49
129
原创 【leetcode】1030 距离顺序排列矩阵单元格 Matrix Cells in Distance
【LeetCode】1030 距离顺序排列矩阵单元格 Matrix Cells in Distance
2020-11-17 21:21:54
146
原创 【leetcode】1122 数组的相对排序
方法一 哈希表Java中HashMap的一些常用方法举例Java中ArrayList的一些常用方法举例时间复杂度是O(N),最坏的情况可能到O(N^2),空间复杂度是O(N)。利用一个HashMap,将arr2中的元素值作为key,因为arr2中的元素不会重复出现,将value设统一值0,接着遍历arr1,如果当前元素在HashMap中存在,就计数出现的次数,赋值到value上,反之就将其存入ArrayList中。遍历arr2,将对应的元素写入到结果数组中,出现几次就写入几次。最后,如果Array
2020-11-15 13:17:50
120
原创 【leetcode】328 奇偶链表
方法一参照leetcode官方答案/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.n
2020-11-13 22:36:13
94
原创 【leetcode】169 多数元素
【leetcode】169 多数元素方法一 哈希表涉及计数,考虑哈希表hashmap遍历整个数组,记录每个数值出现的次数,其中key为数值,value为出现次数→value大于N/2
2020-11-13 21:03:38
340
原创 【leetcode】922 按奇偶排序数组
【leetcode】922 按奇偶排序数组方法一 两次遍历遍历一遍数组把所有的偶数放进 ans[0],ans[2],ans[4],依次类推。再遍历一遍数组把所有的奇数依次放进 ans[1],ans[3],ans[5],依次类推。class Solution { public int[] sortArrayByParityII(int[] A) { int n = A.length; int[] A_new = new int[n]; int i
2020-11-12 21:34:37
102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人