标签:算法
-
leetCode-29-Divide-Two-Integers
题目描述(中等难度) 两个数相除,给出商。不能用乘法,除法和模操作。 本来觉得这道题蛮简单的,记录下自己的坎坷历程。 尝试1 先确定商的符号,然后把被除数和除数通通转为正数,然后用…
-
leetCode-30-Substring-with-Concatenation-of-All-Words
题目描述(困难难度) 给定一个字符串 s ,给定 n 个单词 word,找出所有子串的开始下标,使得子串包含了给定的所有单词,顺序可以不对应。如果有重复的单词,比如有 [ &quo…
-
leetCode-31-Next-Permutation
题目描述(中等难度) 这道题的的难度我觉得理解题意就占了一半。题目的意思是给定一个数,然后将这些数字的位置重新排列,得到一个刚好比原数字大的一种排列。如果没有比原数字大的,就升序输…
-
leetCode-32-Longest-Valid-Parentheses
题目描述(困难难度) 给一个一堆括号的字符串,然后返回最长的合法的括号的长度。关于括号的问题,我们在 20 题和 22 题也讨论过。 解法一 暴力解法 列举所有的字符串,然后判断每…
-
leetCode-33-Search-in-Rotated-Sorted-Array
题目描述(中等难度) 开始的时候想复杂了,其实就是一个排序好的数组,把前边的若干的个数,一起移动到末尾就行了。然后在 log (n) 下找到给定数字的下标。 总的来说,log(n)…
-
leetCode-34-Find-First-and-Last-Position-of-Element-in-Sorted-Array
题目描述(中等难度) 找到目标值的第一次出现和最后一次出现的位置,同样要求 log ( n ) 下完成。 先分享 leetcode 提供的两个解法。 解法一 线性扫描 从左向右遍历…
-
leetCode-35-Search-Insert-Position
题目描述(简单难度) 给定一个有序数组,依旧是二分查找,不同之处是如果没有找到指定数字,需要返回这个数字应该插入的位置。 这道题比较简单,在二分查找的基础上,只要想清楚返回啥就够了…
-
leetCode-36-Valid-Sudoku
题目描述(中等难度) 一个 9 * 9 的数独的棋盘。判断已经写入数字的棋盘是不是合法。需要满足下边三点, 每一行的数字不能重复 每一列的数字不能重复 9 个 3 * 3 的小棋盘…
-
leetCode-37-Sudoku-Solver
题目描述(困难难度) 给定一个数独棋盘,输出它的一个解。 解法一 回溯法 从上到下,从左到右遍历每个空位置。在第一个位置,随便填一个可以填的数字,再在第二个位置填一个可以填的数字,…
-
leetCode-38-Count-and-Say
题目描述(简单难度) 难在了题目是什么意思呢? 初始值第一行是 1。 第二行读第一行,1 个 1,去掉个字,所以第二行就是 11。 第三行读第二行,2 个 1,去掉个字,所以第三行…
-
leetCode-39-Combination-Sum
题目描述(中等难度) 给几个数字,一个目标值,输出所有和等于目标值的组合。 解法一 回溯法 参考这里 ,就是先向前列举所有情况,得到一个解或者走不通的时候就回溯。和37题有异曲同工…
-
leetCode-40-Combination-Sum-II
题目描述(中等难度) 和上一道题非常像了,区别在于这里给的数组中有重复的数字,每个数字只能使用一次,然后同样是给出所有和等于 target 的情况。 解法一 回溯法 只需要在上题的…
-
leetCode-41-First-Missing-Positive
题目描述(困难难度) 给一串数字,找出缺失的最小正数。限制了时间复杂度为 O(n),空间复杂度为 O(1)。 解法一 交换 参考这里。 如果没限制空间复杂度,我们可以这样想。用一个…
-
leetCode-42-Trapping-Rain-Water
题目描述(困难难度) 黑色的看成墙,蓝色的看成水,宽度一样,给定一个数组,每个数代表从左到右墙的高度,求出能装多少单位的水。也就是图中蓝色正方形的个数。 解法一 按行求 这是我最开…
-
leetCode-43-Multiply-Strings
题目描述(中等难度) 就是两个数相乘,输出结果,只不过数字很大很大,都是用 String 存储的。也就是传说中的大数相乘。 解法一 我们就模仿我们在纸上做乘法的过程写出一个算法。 …
-
leetCode-44-Wildcard-Matching
题目描述(困难难度) 字符串匹配,? 匹配单个任意字符,* 匹配任意长度字符串,包括空串。和第 10 题有些类似。 解法一 动态规划 直接按照之前第 10 题,修改一下就可以了。 …
-
leetCode-45-Jump-Game-II
题目描述(困难难度) 从数组的第 0 个位置开始跳,跳的距离小于等于数组上对应的数。求出跳到最后个位置需要的最短步数。比如上图中的第 0 个位置是 2,那么可以跳 1 个距离,或者…
-
leetCode-46-Permutations
题目描述(中等难度) 描述的很简单,就是给定几个数,然后输出他们所有排列的可能。 解法一 插入 这是自己开始想到的一个方法,考虑的思路是,先考虑小问题怎么解决,然后再利用小问题去解…
-
leetCode-47-Permutations-II
题目描述(中等难度) 和上一道题类似,不同之处就是给定的数字中会有重复的,这样的话用之前的算法会产出重复的序列。例如,[ 1 1 ],用之前的算法,产生的结果肯定是 [ […
-
leetCode-48-Rotate-Image
题目描述(中等难度) 将一个矩阵顺时针旋转 90 度,并且不使用额外的空间。大概属于找规律的题,没有什么一般的思路,观察就可以了。 解法一 可以先转置,然后把每列对称交换交换一下。…