
LT笔记
shaotianyou.ddd
day day up
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
首尾相接的字符序列,返回包含某子串的最短长度
题目:有一个首尾相接的字符序列,全部元素已大写字符表示,要求截取一段包含ABCDE的连续子串,返回这一子串的最短长度,例如ABCYDYE,返回6,ATTMBQECPD返回7.思路都在方法中了,有什么不明白的可以留言 public static int method(String str) { //ABCYDYEABCYDYE String str2 = str + str;...原创 2020-03-27 23:23:33 · 502 阅读 · 0 评论 -
LeetCode36. 有效的数独(Java算法详解)
题目:判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[[“5”,“3”,".",".",“7”,"."...原创 2019-08-12 18:52:49 · 697 阅读 · 0 评论 -
LeeCode12. 整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12...原创 2019-08-11 09:15:52 · 227 阅读 · 0 评论 -
使用Math.max和Math.min方法实现三个数中取中位数
public int midNum(int a,int b,int c){ int mid = Math.max(a,b) > c ? Math.max(Math.min(a,b),c) : Math.min(Math.max(a,b),c); return mid; }原创 2019-08-10 19:13:16 · 2352 阅读 · 0 评论 -
LeetCode13. 罗马数字转整数(java思路详解)
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12...原创 2019-08-10 16:53:50 · 508 阅读 · 0 评论 -
LeetCode——17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/letter...原创 2019-07-22 10:15:43 · 210 阅读 · 0 评论 -
LeetCode:104. 二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 。解题思路在代码中class Solution { public int maxDepth(TreeNode root) { int deepth...原创 2019-03-26 23:43:52 · 204 阅读 · 0 评论 -
LeetCode——43.字符串相乘
题目给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数...原创 2019-03-25 20:34:41 · 150 阅读 · 0 评论 -
LeetCode70. 爬楼梯——斐波那契额数列多种执行效率不同的解法
题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1...原创 2019-02-12 22:37:37 · 205 阅读 · 0 评论 -
LeetCode——15. 三数之和(注意超时和判断重复)
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]代码段class Solution ...原创 2019-02-27 15:52:00 · 1144 阅读 · 0 评论 -
LeetCode72. 编辑距离——动态规划详细解题思路
题目:给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入: word1 = “horse”, word2 = “ros”输出: 3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (...原创 2019-02-11 21:46:27 · 2021 阅读 · 0 评论 -
LeetCode——64. 最小路径和
题目:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。解题思路:(1)由于路线只向下或者右走,所以在最上面的一排,和最左边的一排只有维一条路径可走。(2)我们可...原创 2019-02-07 20:31:01 · 279 阅读 · 0 评论 -
LeetCode查找一个字符串的最长回文子串并返回该子串(中心扩展法)
比如一个字符串abcdcbe,则最长的回文子串就应该使bcdcd,即按顺序,倒序读都是一样的。中心扩展法思路:一个子串是回文序列那么它必定是关于中心点对称的,所以只要找到了中心点,再逐一比较它的前后两个字符,相等就继续延申,不相等就退出找下一个“中心点”。可能存在的问题:对于中间有连续的字符dcffg,像这样的字符串如果按照上述方法来找就无法找到,但bb是符合条件的,解决的办法就是将字符的左右...原创 2019-01-29 21:21:07 · 945 阅读 · 0 评论 -
LeetCode 53.最大子序和(扫描法复杂度O(n))
题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。如果用暴力法,即找到每一个子串的和,再通过比较大小返回最大值,复杂度为O(n2),我也是通过查阅个别大佬的解题算法才理解到的,虽然代码量少,但是刚开始...原创 2019-02-03 21:43:22 · 323 阅读 · 0 评论 -
(java)哈希表 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
原题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。最容易想到的就是两个循环暴力破解,不过时间复杂度太高了:O(n^2),最近也是在网上刷题,想多了解点其他求解方法来减少复杂度。大致思路:在数据结构中有一种表叫哈希表,可以通过自己定义一种映射,将原本数组中对应的下标和值,一一映射到哈希表中。在数组中我们通过下标来找...原创 2019-01-17 00:10:21 · 4899 阅读 · 4 评论 -
一个整数序列的下一个更大的序列,若不存在则改为升序序列(复杂度O(n))
给出一个任意整数序列如:1,2,5,7,6,4,3。第一步:从右往左找,找到第一个a[i+1]>a[i]的数,可知此时a(i)为5,a[i+1]为7。第二步:再次从右往做找,找出i右边比a[i]大或者相等的数。因为此时经过第一步的判断,可知i右边的序列一定是一个降序序列,从右往左找出第一个大于a[i]的数a[j]。第三步:交换a[i]和a[j]。第四步:将i右边的序列更改为最小的序列...原创 2019-01-25 22:46:58 · 424 阅读 · 0 评论 -
C,Java如何快速取出两个数中的最小值或最大值(容器容纳最多的水的解法)
例题方法一:C语言暴力破解(遍历循环)来编写核心代码: public int maxArea(int[] height) { int max=0; for(int i=0;i<height.length;i++){ for(int j=i+1;j<height.length;j++){ ...原创 2019-01-19 23:06:50 · 10456 阅读 · 0 评论