
leetcode
君 莫 笑
IT新人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode53 最大子序列和
一听这题的名字,就有一股浓浓的校招味。没错,又是动态规划了。思路:1.动态规划嘛,先弄个数组dp[i] : 以i结尾的最大连续序列和。看到加粗的字体,显然我们要考虑nums[i]是加到之前的序列,还是单独成为一个序列的开头。2.状态转移方程:dp[i] = Max( dp[i-1]+nums[i] , nums[i] )代码:class Solution { public int maxSubArray(int[] nums) { if( nums.原创 2021-08-08 14:36:29 · 118 阅读 · 0 评论 -
leetcode45-跳跃游戏 II
给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。示例 1:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。示例 2:输入: [2,3,0,1,4]输出: 2来源:力扣(LeetCode)链...原创 2021-05-30 17:12:07 · 125 阅读 · 0 评论 -
leetcode39 组合总和
题目:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。示例 1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]示例 2:输入:candidates =...原创 2021-05-16 20:37:34 · 111 阅读 · 0 评论 -
leetcode36 有效的数独
题目:请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 '.' 表示。注意: 一个有效的数独(部分已被填充)不一定是可解的。 只需要根据以上规则,验证已经填入的数字是否有效即可。示例 1:输入:boar...原创 2021-05-16 18:47:58 · 858 阅读 · 0 评论 -
leetcode33 搜索旋转排序数组
思路:(好像剑指offer也有这一题)1.这种题直接搜索肯定会超时。所以考点肯定是二分法。2.旋转数组有什么特点呢?我个人觉得就是最开头的数,比它小的数字肯定在尾部。知识点复习首先要懂二分法基本写法:(我从网上抄的,只强调一点:mid应该用减法来计算,防止溢出)int binarySearch(int[] nums, int target) { int left = 0; int right = nums.length - 1; while(left ..原创 2021-05-08 20:51:34 · 96 阅读 · 0 评论 -
leetcode29 两数相除
思路:1.负数转化为正数符合我们的习惯,但是有效区间为[−2^31, 2^31− 1],显然−2^31,转化为正数会溢出。那么只能全部转化为负数来做了。2.直接减肯定会超时,不然这题没意义了。其实这一题就是看dividend 最多可以分解为多少个divisor 。我们先假设dividend >0且divisor >0。因为无法用乘法,我们可以用位运算,每次左移n位,则相当于divisor *(2^n)了。我们试探性的累加n,直到不能加为止。int n = 0;...原创 2021-05-08 20:35:55 · 130 阅读 · 0 评论 -
leetcode24 两两交换链表中的节点
题目://Given a linked list, swap every two adjacent nodes and return its head. //// // Example 1: //// //Input: head = [1,2,3,4]//Output: [2,1,4,3]// //// Example 2: //// //Input: head = []//Output: []// //// Example 3: //// //Input: h原创 2021-05-06 11:11:09 · 116 阅读 · 0 评论 -
leetcode22 括号生成
思路:1.(吐槽)这一题让你生成有效括号,又不告诉你什么是有效括号。那你让我做什么?那么到底什么是快乐星球(不对,有效括号)?这个问题的答案,其实就是这题的灵魂了:'('一定要有闭环才行。=============version 1 只打败了10%的人===========我一开始也没想很清楚,想着先把所有括号生成出来再说。那么经典的暴力搜索开始:可以看到我是在最后生成了所有的字串后,再去字串判断是否符合题意(if(deep==2*n){...}的代码块内)。if(rightC.原创 2021-05-01 13:37:31 · 149 阅读 · 0 评论 -
leetcode19 删除链表的倒数第N个结点
思路:显然很适合dfs的后序。那么dfs代码如下:稍微有个小坑就是删除头的时候,也就这一个特例吧。class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { if(head == null) return null; int[] reverseDeep = new int[1]; if(dfs(reverseDeep,head,null,n)) {原创 2021-04-30 17:21:43 · 117 阅读 · 2 评论 -
leetcode17 电话号码的字母组合
思路:dfs这种题懂的都懂,不懂的讲了也不懂。听哥一句劝,先去把这个专题搞明白吧。这个资料也是我写的https://download.csdn.net/download/u011403239/12045003?spm=1001.2014.3001.5503初学者不易理解,老玩家又觉得简单,重点是这东西没法讲。建议找个草稿纸画一画归并排序与二叉树dfs的过程。代码如下:class Solution { public List<String> letterCombina原创 2021-04-30 14:38:49 · 103 阅读 · 0 评论 -
leetcode15 三数之和
思路:不排序不好处理,所以先排序。然后遍历数组(每个元素作为x),那么0-x则为2sum问题。这个2sum双指针即可。显然结果集会有重复的,去重也是这个题的考点。如何祛重呢?一开始我用的是set,代码如下(其实很慢的,但是我们还是AC了,笔试中简单方便):class Solution { public List<List<Integer>> threeSum(int[] nums) {// Input: nums = [-4,-1,-1,0,1,2]原创 2021-04-29 23:32:23 · 102 阅读 · 0 评论 -
leetcode11 盛水最多的容器
从两端开始搜索,每次只移动较小的坐标。证明略,因为不是很懂。class Solution { public int maxArea(int[] height) { if(height == null || height.length == 0) return 0; int l = 0; int r = height.length-1; int maxRes = 0; while (l<=r) {原创 2021-04-29 22:40:05 · 92 阅读 · 0 评论 -
leetcode05 最长回文子串
思路:我直接用dp了,其它的不那么通用。设dp[i][j]表示s[i,j]是否为回文数,是则值为1,否则为0。那么有:显然dp[i][j]可以由子序列和当前s[i],s[j]推断出来。注意到i,j变化的方向为:我们沿着45°对角线填充即可。如下图所示:上代码,还是比较简单的。class Solution { public String longestPalindrome(String s) { if(s == null || s.length原创 2021-04-28 23:27:08 · 82 阅读 · 0 评论 -
leetcode3无重复字符的最长子串(java)
题外话:决定把算法捡起来,没想到leetcode国际服居然上不去了,这垃圾宽带。只能转战国服了。初步解题思路:遍历入参s,并维护一个map,key为s[i],value为i。为什么需要这个map呢?当然是为了便于后面查找哪个字符跟当前坐标的字符重复了,如果重复了,假设map.get(当前字符)=dupIndex,下次搜索区间应该从leftIndex = dupIndex+1开始。这样我们保证了搜索区间里的数据是不重复的。所以不用担心map被覆盖的问题,因为太早的重复数据已经没意义了(这一原创 2021-04-28 00:04:19 · 184 阅读 · 0 评论