leetcode
is Mr.Chen
这个作者很懒,什么都没留下…
展开
-
LeetCode刷题记录+题解汇总Java实现(一)
LeetCode991,890,567原创 2019-07-03 17:58:57 · 1797 阅读 · 0 评论 -
leetcode跳跃数字
解法1::贪心(推荐)class Solution { public boolean canJump(int[] nums) { int ans = 0; for(int i = 0;i<nums.length-1;i++){ ans = Math.max(ans,nums[i]+i); if(ans&...原创 2019-08-06 10:36:07 · 450 阅读 · 0 评论 -
leetcode238除自身以外数组的乘积
leetcode238思路:左边的乘积创建数组保存,右边的乘积创建数组保存,ans = 左边*右边常规代码:int[] p; int[] q; public int[] productExceptSelf(int[] nums) { if(nums.length==0){ return new int[]{}; }...原创 2019-08-08 17:07:07 · 94 阅读 · 0 评论 -
leetcode406根据身高重建队列
leetcode406根据身高重建队列思路:自定义排序+插入排序将原序列根据h降序,k升序 通过插入排序即可void add(int index, E element);class Solution { public int[][] reconstructQueue(int[][] people) { Comparator<int[]> c = new...原创 2019-08-13 15:32:46 · 409 阅读 · 0 评论 -
leetcode283移动零
class Solution { public static void moveZeroes(int[] nums) { if(nums.length==1){ return; } for(int i = 0,cnt = 0;i<nums.length;i++){ if(nums[i]!=0...原创 2019-08-13 16:52:38 · 99 阅读 · 0 评论 -
leetcode比特位计数
leetcode比特位计数class Solution { public int[] countBits(int num) { int[] ans = new int[num+1]; for(int i = 1;i<=num;i++){ ans[i] = ans[i>>1]+(i&1); ...原创 2019-08-09 15:07:37 · 163 阅读 · 0 评论 -
leetcode560 和为k的子数组
和为k的子数组思路:累计和+hashclass Solution { public int subarraySum(int[] nums, int k) { Map<Integer, Integer> map = new HashMap<>(); map.put(0, 1); int sum = 0, ret ...原创 2019-08-14 17:45:39 · 85 阅读 · 0 评论 -
leetcode字符串相乘
字符串转为数字处理 效率更高(学习一下)转为int数组再转为字符串class Solution { public String multiply(String num1, String num2) { int m = num1.length(); int n = num2.length(); int[] pos = new int[...原创 2019-08-28 17:06:29 · 243 阅读 · 0 评论 -
leetcode Pow(x,n)
快速幂class Solution { public static double myPow(double x, int n) { long N = n; if(N<0){ N = -N; x = 1.0D/x; } double ans = 1d; w...原创 2019-08-28 17:32:13 · 155 阅读 · 0 评论 -
leetcode打家劫舍1,2,3(dp+递归)
leetcode打家劫舍1题意:给定一个数组,相邻的数字不能相加,其余数字可以任意相加,问在次情况下最大和是多少思路:理解题意后就能明白这道题的和最大和是个动态增长的过程而且依赖之前求出来的最大和,我们可以用dp来解决。dp的动态方程为dp[i] = max(dp[i-2]+nums[i],dp[i-1])代码如下:public int rob(int[] nums) { ...原创 2019-07-30 15:55:36 · 538 阅读 · 0 评论 -
leetcode169求众数
求众数题意:给定一组数组求出该组数组的众数思路:可以通过hash存一下数字出现的次数,然后逐一比较维护ans即可。当然也可以直接排序,取中间值(不推荐)这里介绍一个针对本题的方法,众数的出现次数要大于n/2,那这组数据的最糟糕的情况下是第一个数字出现次数为(n/2-1)次,第二个数字即答案出现(n/2+1)次我们可以通过一个变量cnt来计数,另一个变量num表示当前为止被计数的数字...原创 2019-07-30 10:19:38 · 89 阅读 · 0 评论 -
LeetCode刷题记录+题解汇总Java实现(二)
leetcode 3,4,5,11,17原创 2019-07-05 10:48:51 · 496 阅读 · 0 评论 -
leetcode141环形链表(快慢指针)
https://leetcode-cn.com/problems/linked-list-cycle/快慢指针,根据操作跑步的常识,跑得快的总能追的上跑得慢,因为操场是一个圆嘛这一常识同样适用环形链表的判断。代码如下:public class Solution { public boolean hasCycle(ListNode head) { if(head=...原创 2019-07-17 10:01:06 · 191 阅读 · 0 评论 -
leetcode15 三数之和
https://leetcode-cn.com/problems/3sum/先将给定数组排序,方便后续操作O(log n)遍历数组取出当前数据num[i](注意一些剪枝的判断:>0舍去,去重),再取num[k]即num[i+1],再取num[j]即num[nums.length-1]以这三数相加的和sum 与0比较来移动k和j指针 符合添加则加入ansclass Solution...原创 2019-07-17 10:08:16 · 236 阅读 · 0 评论 -
leetcode146 LRU缓存机制(java)
LRU缓存机制题意:构造一个有LRU缓存机制的容器即写一个类并实现get和put通过jdk中的LinkedHashMap中的构造函数我们可以发现,jdk已经实现了LRU这一机制了LinedHashMap的构造函数如下:public LinkedHashMap(int initialCapacity, float loadFactor,...原创 2019-07-29 14:12:19 · 540 阅读 · 0 评论 -
leetcode148排序链表(归并排序)
排序链表题意:在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。根据题意在结合链表的特殊情况,我们可以使用归并排序就可以满足题意要求。归并排序虽然是效率O(nlogn),空间复杂度O(n)但针对于链表的情形下不需要开创一个辅助空间,是可以满足题意要求的O(1)空间复杂度关于归并排序的一般形式代码如下: public void Merge(int[] arrs,...原创 2020-03-18 12:30:15 · 98 阅读 · 0 评论 -
leetcode152乘积最大子序列(dp)
乘积最大子序列题意:给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。思路:除去暴力法,这道题的另一种解法就是dp来维护我们想要的ans.public int maxProduct(int[] nums) { int ans = Integer.MIN_VALUE; int maxans = 1; ...原创 2019-07-29 18:04:14 · 145 阅读 · 0 评论 -
leetcode084柱状图中最大的矩形(单调栈)
84.柱状图中最大的矩形https://leetcode-cn.com/problems/largest-rectangle-in-histogram/思路:柱状图中产生最大矩形有三种情况情况一:柱状图满足递增,则取最后最大的矩形即可。情况二:柱状图满足递减,则取最先的矩形即可。情况三:保证stack存递增的高度,class Solution { public int la...原创 2019-07-25 09:30:26 · 297 阅读 · 0 评论 -
leetcode085最大矩形(单调栈)
https://leetcode-cn.com/problems/maximal-rectangle/submissions/思路:这道题的做法与leetcode084很相像对每一行求一次柱状图中最大的矩形,通过辅助数组heights记录每一列的柱状图高度即可class Solution { public int largestRectangleArea(int[] hei...原创 2019-07-25 10:34:40 · 185 阅读 · 0 评论 -
leetcode419甲板上的战舰
leetcode419甲板上的战舰class Solution { public static int countBattleships(char[][] board) { int i,j; int boardRowSize = board.length; int boardColSize = board[0].length; ...原创 2019-08-29 14:57:42 · 157 阅读 · 0 评论