题目描述:
给定一个二维网络,给定任意起点与终点。每一步可以往4个方向走。要找出黄金最多的一条线路。
很明显的是要“一条路走到黑,一直下去直到某个条件停止”。
运用dfs(深度优先搜索)求解。
因为起点任意,所以从每个点开始搜,接着每个点又搜相邻点。反复如此。
递归的终止条件:
立志要熟练动态规划,加油!
最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。思路:设dp[l][r]表示s[l……r]是否回文,枚举右边界r,然后从0枚举l一直到r,dp[r][l] = s[r]==s[l] && (r
题目描述
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target
LeetCode
做笔记
对于遇到的每个题目,事后都做上标记:普通题目,难题、好题。此外,每个题目都分为以下几个步骤做好详细的笔记:
1. 原题目
2. 自己的第一遍解法
3. 网上好的解法
4. 自己可以改进的地方
5. 进一步精简优化自己的代码直至代码简无可简(这是非常关键的一步,到
首发于微信公众号《前端成长记》,写于 2019.12.06
背景
本文记录刷题过程中的整个思考过程,以供参考。主要内容涵盖:
题目分析设想
编写代码验证
查阅他人解法
思考总结
目录
100.相同的树
101.对称二叉树
104.二叉树的最大深度
107.二叉树的层次遍历II
108.
跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个位置。
思路
根据题目意思,最大跳跃距离,说明可以跳0--nums[i]的距离
可以把跳跃看成走nums[i]步,如果能走到下一位置则可以加油获取更多
题目描述:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子
首发于微信公众号《前端成长记》,写于 2019.12.15
背景
本文记录刷题过程中的整个思考过程,以供参考。主要内容涵盖:
题目分析设想
编写代码验证
查阅他人解法
思考总结
目录
110.平衡二叉树
111.二叉树的最小深度
112.路径总和
118.杨辉三角
119.杨辉三角Ⅱ
(1)4. 寻找两个有序数组的中位数(中)
https://leetcode-cn.com/problems/median-of-two-sorted-arrays/
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。
请你找出这两个有序数组的中位数,并且要求算法的时间复
https://leetcode-cn.com/problems/minesweeper/solution/python3-dfsbfszhu-shi-by-xxd630/
规则:
'M' 代表一个未挖出的地雷
'X' 则表示一个已挖出的地雷。
'E' 代表一个未挖出的空方块,
'B' 代
题目描述
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。
示例 1
给定数组 nums = [1,1,2],
函数应该返回新的长度 2, 并且原数组
本周题目归档
00007 整数反转
00028 实现 strStr()
00027 移除元素
00387 字符串中的第一个唯一字符
00206 反转链表
00160 相交链表
0008
题目描述
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1 -> 2 -> 4 ,1 -> 3 -> 4
输出:1 -> 1 -> 2 -> 3 -> 4 -> 4
方
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。
(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15
最近在剑指Offer上刷了一些题目,发现涉及到数据结构类的题目,如果想在本地IDE进行测试,除了完成题目要求的算法外,还需要写一些辅助函数,比如树的创建,遍历等,由于这些函数平时用到的地方比较多,并且也能加深对常用数据结构的理解,这里将Leetcode中与树(TreeNode)相关题目会用到的测
题目描述
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
例如:
给定二叉树: [3,9,20,null,null,15,7]
3
/
9 20
/
15 7
返回其层次遍历结果
简介:
动态规划问题面试中经常遇到的问题之一,按照动态规划的一般定义,其一般解法在于将大问题分解为很多小问题去解决,但是我在遇到很多实际的问题时,想法都是强行的去将问题分解,而忽略了分解的必要性和途径的合理性。看某知乎大佬的帖子:动态规划的核心思想在于分解的小问题能否被上一级的问题去重用,也就
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
1 class Solution {
2 List<String> temp=new ArrayLis