自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农在途的博客

在这里你会看到一个菜鸟的成长历程

  • 博客(259)
  • 收藏
  • 关注

原创 LeetCode22. 括号生成

22. 括号生成 题目链接解题思路:创建组合原理,先放左括号,再放右括号,左括号数不能超过 n,右括号数要与右括号数一致public List<String> generateParenthesis(int n) { List<String> list = new ArrayList<>(); backList...

2020-04-16 22:50:58 933

原创 LeetCode542. 01 矩阵

542. 01 矩阵 题目链接解题思路:动态规划当前坐标最小距离=上下左右最小距离+1 or 当前坐标为0public int[][] updateMatrix(int[][] matrix) { int rowLen = matrix.length, colLen = matrix[0].length; int[][] result = new int[ro...

2020-04-15 21:14:13 1010

原创 LeetCode445. 两数相加 II

445. 两数相加 II 题目链接解法一:两个栈存储链表元素,依次遍历 l1,l2,依次遍历 stackL1、stackL2,头结点插入生成新链表,carry 标志进位public ListNode addTwoNumbers(ListNode l1, ListNode l2) { Stack<Integer> stackL1 = new Stack<>...

2020-04-14 21:43:06 1153

原创 LeetCode151. 翻转字符串里的单词

151. 翻转字符串里的单词 题目链接解法一:去除字符串首尾空格,从尾部开始遍历字符串public String reverseWords(String s) { if (s == null || s.length() < 1) { return s; } char[] str = s.trim().toCharAr...

2020-04-10 15:04:04 401

原创 LeetCode面试题13. 机器人的运动范围

面试题13. 机器人的运动范围 题目链接解题思路:从坐标 ( 0 ,0 ) 开始向右、下遍历,判断是否满足规则(坐标位数之和不大于 k),且未被访问。满足要求则运动范围 count++,继续遍历;不满足,则返回上一有效坐标,进行有效遍历。private int[] moveX = {1, 0}, moveY = {0, 1}; private int coun...

2020-04-08 11:38:33 337

原创 LeetCode面试题 01.07. 旋转矩阵

面试题 01.07. 旋转矩阵 题目链接解题思路:顺时针旋转 90° 对应转换规则 (x,y)->(y,n-x) ,n=N-1public void rotate(int[][] matrix) { if (matrix == null || matrix.length < 1) { return; } int...

2020-04-07 10:57:25 337

原创 LeetCode460. LFU缓存

460. LFU缓存 题目链接解题思路:哈希表+优先队列Map<Integer, Node> cache 存储缓存 key、value,PriorityQueue freQueue 按使用频率和最近使用时间降序存储缓存元素,static int timer 计数表示每个元素的使用时间,int capacity 记录缓存的容量put 元素时,判断是否已存在:存在则更新使用频率和最近...

2020-04-05 23:26:54 216

原创 LeetCode8. 字符串转换整数 (atoi)

8. 字符串转换整数 (atoi) 题目链接解题思路:1、当 str 去除前端空格后,第一个字符不为数字、+、-,则直接返回 02、sign 记录正负号,默认为 +,3、 当 sign 为 +,prefix = Integer.MAX_VALUE / 10 suffix = 74、 当 sign 为 -,prefix = Integer.MAX_VALUE / 10 suffix = 8...

2020-04-03 13:28:31 179

原创 LeetCode289. 生命游戏

289. 生命游戏 题目链接解题思路:1、创建 res[][] 存储下一状态,countAlive(int x,int n,board) 计算当前坐标点八个相邻位置的活细胞数。2、遍历 board,当遍历元素值为 0,且活细胞数为 0;或遍历元素值为 1 ,活细胞数小于 2、大于 3,活细胞变死细胞,死细胞变活细胞;否,则与 board 状态一致。public void gameOfLif...

2020-04-02 11:22:36 250

原创 LeetCode124. 二叉树中的最大路径和

124. 二叉树中的最大路径和 题目链接解题思路:当前节点最大路径值=Max(左子树最大路径值,右子树最大路径值)+当前节点值若左右子树最大路径值为负数,则不加上子树路径值(子树路劲值设为 0)以后序遍历顺序依次计算每一节点路径值,max 存储最大值即可 private int maxPath = Integer.MIN_VALUE; public int maxPathSum(T...

2020-04-01 18:22:13 324

原创 LeetCode912. 排序数组

912. 排序数组 题目链接解法一:桶排序public int[] sortArray(int[] nums) { int[] bucket = new int[100001]; for (int num : nums) { bucket[num + 50000]++; } int index = 0; ...

2020-03-31 22:26:30 166

原创 LeetCode面试题62. 圆圈中最后剩下的数字

面试题62. 圆圈中最后剩下的数字解法一:暴力枚举以 new ArrayList<>(n) 模拟圆圈,每次移除 圆圈中按顺序数到的第 m 个数,最后剩余的那个数就是我们需要找的数。public int lastRemaining(int n, int m) { List<Integer> cycle = new ArrayList<>(n...

2020-03-30 20:00:12 278

原创 LeetCode1162. 地图分析

1162. 地图分析解题思路:动态规划1、当前坐标距离为上下左右距离最小值+12、两次距离计算,第一次以上左为参照,第二次以下右为参照,如果是陆地标记为 03、maxDistance 记录最大距离public int maxDistance(int[][] grid) { int maxDistance = -1; int[][] distance = n...

2020-03-29 23:10:44 229

原创 LeetCode820. 单词的压缩编码

820. 单词的压缩编码 题目链接解法一:1、遍历字符串,建立 set,len 记录压缩后的列表长度初始化为 02、将 words 按照字符串长度降序排序,方便过滤后缀子串3、若所遍历字符串不在 set 中,且不是 set 中任一字符后缀)则加入 set4、 否,则 len+= word.length+1 ,继续遍历下一字符public int minimumLengthEncodin...

2020-03-28 22:59:56 306

原创 LeetCode914. 卡牌分组

914. 卡牌分组解题思路:遍历 deck 以每个非重复数字为 key,出现次数为 value若所有的 value 存在最大公约数(大于 1),则返回 true,否则返回 false。public boolean hasGroupsSizeX(int[] deck) { Map<Integer, Integer> map = new HashMap<>...

2020-03-27 14:23:38 200

原创 #LeetCode999. 车的可用捕获量

999. 车的可用捕获量解题思路:1、设白色车的坐标为 (x,y),白色车的行进路线为(0,x)、(x,7)、(0,y)、(y,7)2、count 记录能捕获卒的最大数量,最小为0,最大为 43、当行进路程中遭遇 ‘P’(卒)或 ‘B’(象) 时停止前进,且在遭遇卒时 count++class Solution { public int numRookCaptures(char[...

2020-03-26 10:45:26 171

原创 LeetCode892. 三维形体的表面积

892. 三维形体的表面积 题目链接解题思路:总表面积 = 柱体表面积 - 重叠面积每一个坐标点上的立方体可看作一个柱体(长方体),柱体上下两面面积一定存在,中间四面表面积受重叠影响,减去的面积为相邻坐标点更低柱体侧面积。思路参考:https://leetcode-cn.com/problems/surface-area-of-3d-shapes/solution/shi-li-you-t...

2020-03-25 23:27:30 208

原创 LeetCode30. 串联所有单词的子串

30. 串联所有单词的子串 题目链接解法一思路:暴力匹配,每次取 s 定长字符串,与 words 单词匹配,若能完全匹配则将子串起始索引加入结果匹配规则:当前遍历字符串(s.substring(i, i + wordLen))在 words 存在(去除完全不可能的匹配),且与 words 组成的哈希表也一致。public List<Integer> findSubstring(...

2020-03-24 20:31:33 162

原创 LeetCode-面试题 17.16. 按摩师

面试题 17.16. 按摩师 题目链接解题思路:动态规划,由果溯因dp[n][0]表示不接受当前数的最大预约时长 = Max(dp[n-1][0],dp[n-1][1])dp[n][1] 表示接受当前数的最大预约时长 = dp[n-1][0]+nums[n]当前最大预约时长= Max(dp[n][0],dp[n][1])class Solution { public int m...

2020-03-24 09:35:43 370

原创 LeetCode57. 插入区间

57. 插入区间 题目链接解题思路:1、依据题意可以将区间列表分为 3 个部分:小于 newInterval[0]、与 newInterval 重叠、大于 newInterval[1].2、对于 newInterval 非重叠区域,只需要保持原样即可,对于 newInterval 重叠区间,进行合并。public int[][] insert(int[][] intervals, int[...

2020-03-23 20:50:24 258

原创 LeetCode876. 链表的中间结点

876. 链表的中间结点 题目链接解题思路:双指针法,快指针一次走两步,慢指针一次走一步,当快指针走完链表时,慢指针指向的就是中间节点。public ListNode middleNode(ListNode head) { ListNode fast = head, slow = head; while (fast != null && fast...

2020-03-23 11:36:51 133

原创 LeetCode945. 使数组唯一的最小增量

945. 使数组唯一的最小增量 题目链接解法一:对数组 A 升序排序,count 记录需要操作的次数。若 A[i]<=A[i-1],count+=A[i-1]+1-A[i],A[i]=A[i-1]+1。public int minIncrementForUnique(int[] A) { Arrays.sort(A); int count = 0; ...

2020-03-22 20:52:21 198

原创 LeetCode365. 水壶问题

365. 水壶问题 题目链接解法一:BFS把问题化简为:寻找一条从 0 -> z 的路径,每次可以有 6 种操作。1、 将 X 倒满2、将 Y 倒满3、将 X 水倒出4、将 Y 水倒出5、将 X 水倒入 Y 中6、将 Y 水导入 X 中通过化简我们可以将操作精简为:+x,+y,-x,-y。(3、5合并为 -x,4、6合并为 -y)使用变量 cur 记录当前状态,visut...

2020-03-21 21:42:19 273

原创 LeetCode78. 子集

78. 子集 题目链接解法一:回溯法依次创造 1…nums.length 长度的子数组createSubSet,创造子数组subSets 存储已生成子数组private List<List<Integer>> subSets = new ArrayList<>(); public List<List<Integer>> ...

2020-03-20 16:25:42 171

原创 LeetCode409. 最长回文串

409. 最长回文串 题目链接解题思路:最长回文串为偶数字符总数+(存在奇数字符+1,不存在奇数字符+0)public int longestPalindrome(String s) { if (s == null || s.length() < 1) { return 0; } int oddLen = 0, e...

2020-03-19 11:45:33 152

原创 LeetCode836. 矩形重叠

836. 矩形重叠 题目链接解法一:正难则反,若 rec1 与 rec2 不相交,则 rec1 四条边都应该在 rec2 外部。rec1 位于 rec2 左侧,rec1[2]<=rec2[0],rec1 位于 rec2 右侧,rec2[2]<=rec1[0],rec1 位于 rec2 上侧,rec2[3]<=rec1[1],rec1 位于 rec2 下侧,rec1[3...

2020-03-18 10:57:28 147

原创 LeetCode1160. 拼写单词

LeetCode1160 题目链接思路分析:以 chars 建立哈希表 dictionary(字符,出现次数)建立辅助方法 isValid(),判断 words 中字符是否完全匹配匹配规则:word 字符在 dictionary 中出现,且数量大于 0,每匹配一次数量-1len 记录已完全匹配字符累计长度public int countCharacters(String[] words...

2020-03-17 11:12:42 265

原创 LeetCode334. 递增的三元子序列

LeetCode334 题目链接给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。思路分析:1、基于 LeetCode300. 最长上升子序列解法,increaseSequence 存储递增序列依序遍历 nums。2、若遍历数值小于递增序列末尾数值则加入序列,若大于递增序列末尾则替换序列中首个大于当前遍历数的值。3、当序列长度等于 3 时,返回true,否,返回 ...

2020-03-14 16:37:49 238

原创 LeetCode1013

LeetCode1013题目链接:https://leetcode-cn.com/problems/partition-array-into-three-parts-with-equal-sum解法一:对数组求和/3=三等分值 flagcount 记录满足要求的等分数,依序遍历数组 A当 flag!=A【i】 时继续遍历数组 flag-=A【i】当 flag==A【i】 时,coun...

2020-03-11 10:13:08 142

原创 过去的 2019

做了哪些事做的还不够好的那些事ARTS 打卡停滞、不太顺利的工作做的还行的那些事LeetCode 刷题数、扇贝打卡天数、学生时期的一万元存款打算做些什么月薪过万工资,也是一种技术实力的体现搭建个人博客可以被搜索引擎检索收录(微信公众号的劣势)带有评论功能,可以和读者友好互动支持 Markdown如何实现继续 ARTS 打卡看更多经典的专业书,暂定为 12 本技术书学习...

2020-03-01 00:03:33 2248

原创 什么是预排序遍历树算法(MPTT)

MPTT 是什么?MPTT(Modified Preorder Tree Taversal)预排序遍历树算法

2019-11-08 18:05:57 2863

原创 左耳听风 第五十周

左耳听风 第五十周每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)Algorithm开始按照类型来刷题,本周为:BFS 相关,以下为个人题解:LeetCode695. 岛屿的最大面积review「Gr...

2019-11-03 22:02:05 322

原创 一道面试题引发的思考

好的面试官能够能好的和面试者互动,而一场好的面试也能带给面试者更多的思考面试题:有 N 个数,求能够组成最大值的 n-1 个数,不能使用除法面试官给我出题后的 1 分钟内,我给出了第一种思路:排序。将数字按升序排序,去除最小的那个数即可。存在问题:时间复杂度高,只考虑了正数的情况。面试官给出了第一次提示时间复杂度过高,要求降低时间复杂度。这里其实已经把思考的范围缩小了,因为之前的排序时...

2019-11-02 09:40:11 182

原创 LeetCode695. 岛屿的最大面积

LeetCode695. 岛屿的最大面积给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0...

2019-10-29 16:18:03 368

原创 左耳听风 第四十九周

左耳听风 第四十九周每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)Algorithm开始按照类型来刷题,本周为:双指针、排序贪心 相关,以下为个人题解:LeetCode633. 平方数之和LeetCo...

2019-10-27 22:47:54 474

原创 我所讨厌的一些招聘

经历了几个月的面试,从线上面试到线下宣讲会、招聘会的面试求职大都体验了一遍,这其中也遇见了一些令我很是讨厌的招聘。挂羊头卖狗肉式在招聘的过程中,最讨厌的一种招聘方式就打着「管培生」的名义,让学生去做柜员或者销售的工作,成为真柜员假「管培生」。以我在某银行支行来学校的校招为例,招聘少量的科技岗、管理岗人才,但是在我面试 IT 技术岗工作时,问的都是非技术性问题,而在面试结束的最后,反而问你 是...

2019-10-27 20:06:50 494

原创 LeetCode763. 划分字母区间

划分字母区间字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入: S = “ababcbacadefegdehijhklij”输出: [9,7,8]解释:划分结果为 “ababcbaca”, “defegde”, “hijhklij”。每个字母最多出现在一个片段中。像 ...

2019-10-25 10:16:17 245

原创 LeetCode605. 种花问题

种花问题假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。示例 1:输入: flowerbed = [1,0,0,0,1], n = ...

2019-10-23 15:39:52 302

原创 LeetCode452. 用最少数量的箭引爆气球

用最少数量的箭引爆气球在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xs...

2019-10-22 11:22:51 140

原创 LeetCode435. 无重叠区间

无重叠区间给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。来源:力扣(LeetCode)链接:h...

2019-10-22 10:42:37 311

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除