
leetcode
I'mVeryLow
一旦匿名了,人性就暴露了。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
三角形最小路径和(自顶向下/自底向上:动态规划)
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。 动态规划: 自顶向下 class Solution: def minimumTotal(self, triang...原创 2019-11-17 19:35:00 · 783 阅读 · 0 评论 -
子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 代码一: 先添加特殊的; 后遍历组合:效率低 def subsets(nums): if no...原创 2019-11-16 09:25:23 · 170 阅读 · 0 评论 -
组合:返回 1 ... n 中所有可能的 k 个数的组合。(回溯算法)
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。 示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] class Solution: def combine(self, n: int, k: int) -> List[List[int]]: ...原创 2019-11-15 20:32:21 · 859 阅读 · 0 评论 -
动态规划之不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径 例如,上图是一个7 x 3 的网格。有多少可能的路径? 说明:m 和 n 的值均不超过 100。 示例 1: 输入: m = 3, n = 2 输出: 3 解释: 从左上角...原创 2019-11-11 22:09:26 · 239 阅读 · 0 评论 -
字母异位词分组
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 输入: ["eat", "tea", "tan", "ate", "nat", "bat"], 输出: [ ["ate","eat","tea"], ["nat","tan"], ["bat"] ] ```python def groupAnagrams(self, strs: List[str...原创 2019-10-21 17:39:30 · 255 阅读 · 0 评论 -
全排列(重复值和无重复值的情况)
输入 [1,2,3] 输出 [[1,2,3],[1,3,2],[2,1,3],[2,3,1], [3,2,1],[3,1,2]] ans.append(nums);不加nums+[]的结果如下: [[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]] class Solution: def permute(...原创 2019-10-17 21:07:26 · 293 阅读 · 0 评论 -
判断2-100的质数(素数)
while i<100: j=2; 比如 i=11:就判断[2, i//2==5]中能不能被i整数 k=i//j while j<=k: e=i%j; if not e:break; j+=1; lp=i//j...原创 2019-10-15 11:22:06 · 1198 阅读 · 0 评论 -
组合总和(回溯算法)
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字不可以重复被选取。 def combinationSum( candidates, target: int) : res=[]; c_l=len(candidates); ...原创 2019-10-15 09:13:03 · 433 阅读 · 0 评论 -
字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 = "2", num2 = "3" 输出: "6" 示例 2: 输入: num1 = "123", num2 = "456" 输出: "56088" res = 0 num1的最左边:num1[-len(num1)] num1的最右...原创 2019-10-14 17:34:56 · 135 阅读 · 0 评论 -
有效的数独
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字,空白格用 ‘.’ 表示。 示例 1: 输入: [ ["5","3",".",".","7",...原创 2019-10-13 10:56:21 · 166 阅读 · 0 评论 -
二分查找:在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。 普通的二分查找前提: 数组是有序的; 数组中不存在重复值; 此题中不一定满足第二条; 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 ...原创 2019-10-12 16:46:24 · 758 阅读 · 0 评论 -
折半,计算 x 的 n 次幂函数
实现 pow(x, n) ,即计算 x 的 n 次幂函数。 输入: 2.00000, 10 输出: 1024.00000 使用折半计算,每次把n缩小一半,这样n最终会缩小到0,任何数的0次方都为1,这时候我们再往回乘,如果此时n是偶数,直接把上次递归得到的值算个平方返回即可,如果是奇数,则还需要乘上个x的值。还有一点需要引起我们的注意的是n有可能为负数,对于n是负数的情况,我们可以先用其绝对值...原创 2019-10-11 20:38:56 · 386 阅读 · 0 评论 -
链表节点两两的交换
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 给定 1->2->3->4, 你应该返回 2->1->4->3. 链表节点的交换 class Solution: def swapPairs(self, head: ListNode) -> ListNode: ...原创 2019-10-10 10:05:29 · 397 阅读 · 0 评论 -
单方向全排列的一道题
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. class Solution: def letterCombinations(self, digits: str...原创 2019-10-06 12:41:30 · 159 阅读 · 0 评论 -
动态规划问题
选择不相邻的数(个数不限)组成最大的和,问最大是多少? 动态规划:遇到了重叠子问题, def getMax(lis): import numpy as np s_l=len(lis); opt=np.zeros((s_l)); opt[0],opt[1]=lis[0],max(lis[0],lis[1]); for i in range(2,s_l): ...原创 2019-10-04 21:08:37 · 188 阅读 · 0 评论 -
最长的回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 1.中心扩展法 哔哩哔哩教程 def getCenter(self,s,i,j): while i>=0 and j<len(s) and s[i]==s[j]: i-=1; j+=1; return j-i-1;...原创 2019-10-01 17:18:37 · 132 阅读 · 1 评论