Leetcode经典148题
-
leetCode-49-Group-Anagrams
题目描述(中等难度) 给定多个字符串,然后把它们分类。只要字符串所包含的字符完全一样就算作一类,不考虑顺序。 解法一 最通用的一种解法,对于每个字符串,比较它们的每个字符出现的个数…
-
leetCode-50-Pow
题目描述(中等难度) 就是求幂次方。 解法一 求幂次方,用最简单的想法,就是写一个 for 循环累乘。 至于求负幂次方,比如 2^{-10},可以先求出 2^{10},然后取倒数,…
-
leetCode-51-N-Queens
题目描述(困难难度) 经典的 N 皇后问题。意思就是摆皇后的位置,每行每列以及对角线只能出现 1 个皇后。输出所有的情况。 解法一 回溯法 比较经典的回溯问题了,我们需要做的就是先…
-
leetCode-52-N-QueensII
题目描述(困难难度) 和上一题一样,只不过这次不需要返回所有结果,只需要返回有多少个解就可以。 解法一 我们直接把上道题的 ans 的 size 返回就可以了,此外 current…
-
leetCode-53-Maximum-Subarray
题目描述(简单难度) 给一个数组,找出一个连续的子数组,长度任意,和最大。 解法一 动态规划思路一 用一个二维数组 dp[ i ] [ len ] …
-
leetCode-54-Spiral-Matrix
题目描述(中等难度) 从第一个位置开始,螺旋状遍历二维矩阵。 解法一 可以理解成贪吃蛇,从第一个位置开始沿着边界走,遇到边界就转换方向接着走,直到走完所有位置。 /* * dire…
-
leetCode-55-Jump-Game
题目描述(中等难度) 45题的时候已经见过这道题了,只不过之前是返回从第 0 个位置能跳到最后一个位置的最小步数,这道题是返回是否能跳过去。 leetCode Solution 中…
-
leetCode-56-Merge-Intervals
题目描述(中等难度) 给定一个列表,将有重叠部分的合并。例如[ [ 1 3 ] [ 2 6 ] ] 合并成 [ 1 6 ] 。 解法一 常规的思想,将大问题…
-
leetCode-57-Insert-Interval
题目描述(困难难度) 和上一道可以说是一个问题,只不过这个是给一个已经合并好的列表,然后给一个新的节点依据规则加入到合并好的列表。 解法一 对应 56 题的解法一,没看的话,可以先…
-
leetCode-58-Length-of-Last-Word
题目描述(简单难度) 输出最后一个单词的长度。 解法一 直接从最后一个字符往前遍历,遇到空格停止就可以了。不过在此之前要过滤到末尾的空格。 public int lengthOfL…
-
leetCode-59-Spiral-MatrixII
题目描述(中等难度) 和 54题 差不多,54 题按照螺旋状遍历,这个是按照螺旋状生成二维数组。 解法一 直接按照 54题,贪吃蛇的走法来写,如果没做过可以看一下。 /* * di…
-
leetCode-60-Permutation-Sequence
题目描述(中等难度) 又是一道全排列的题,之前在31题,46题,也讨论过全排列问题的一些解法。这道题的话,是给一个 n,不是输出它的全排列,而是把所有组合从从小到大排列后,输出第 …
-
leetCode-61-Rotate-List
题目描述(中等难度) 将最后一个链表节点移到最前边,然后重复这个过程 k 次。 解法一 很明显我们不需要真的一个一个移,如果链表长度是 len, n = k % len,我们只需要…
-
leetCode-62-Unique-Paths
题目描述(中等难度) 机器人从左上角走到右下角,只能向右或者向下走。输出总共有多少种走法。 解法一 递归 求 ( 0 , 0 ) 点到( m – 1 , n ̵…
-
leetCode-63-Unique-PathsII
题目描述(中等难度) 对62题的变体,增加了一些不能走的格子,用 1 表示。还是输出从左上角到右下角总共有多少种走法。 没做过62题的话可以先看一下,62 题总结的很详细了,我直接…
-
leetCode-64-Minimum-PathSum
题目描述(中等难度) 依旧是62题的扩展,这个是输出从左上角到右下角,路径的数字加起来和最小是多少。 依旧在62题代码的基础上改,大家可以先看下 62 題。 解法一 递归 62 题…
-
leetCode-65-Valid-Number
题目描述(困难难度) 给定一个字符串,判断它是否代表合法数字,当然题目描述的样例不够多,会使得设计算法中出现很多遗漏的地方,这里直接参考评论区@yeelan0319给出的更多测试样…
-
leetCode-66-Plus-One
题目描述(简单难度) 数组代表一个数字,[ 1, 2, 3 ] 就代表 123,然后给它加上 1,输出新的数组。数组每个位置只保存 1 位,也就是 0 到 9。 解法一 递归 先用…
-
leetCode-67-Add Binary
题目描述(简单难度) 两个二进制数相加,返回结果,要注意到字符串的最低位代表着数字的最高位。例如 "100" 最高位(十进制中的百位的位置)是 1,但是对应的字…
-
leetCode-68-Text-Justification
题目描述(困难难度) 一个句子,和一个长度表示一行最长的长度,然后对齐文本,有下边几个规则。 同一个单词只能出现在一行中,不能拆分 一行如果只能放下一个单词,该单词放在最左边,然后…