leetcode
Ombre_Z
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode#64最小路径和
题目要求:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。思路:错误思路:贪心算法 每次都面临选择时都选取最小的相加局部最尤无法推导整体最优正确思路:动态规划:单独考虑到达每个位置的最优解,后续只是对最优解长度的扩充。与贪心算法不同,动态规划考虑的时不考虑后续情况,只对之前情况进行最优求解。之后对于最优解进行最优的扩展,以保证全局...原创 2019-11-27 16:08:49 · 178 阅读 · 0 评论 -
leetcode#59 螺旋矩阵Ⅱ
题目要求:按照顺时针螺旋顺序 构建一个n*n的螺旋矩阵思路:参照之前的54题输出螺旋矩阵的思路 将单圈拆开为四个部分。每个部分循环的长度是相同的。单圈循环完之后,起始坐标向右下移一个单位,单次循环长度减二。对于偶数阶矩阵,正常结束。对于奇数阶矩阵,因为循环长度会减到0,需要手动加入最后最中间的一个数。如图 单圈拆分为黄红蓝绿四个部分。每个部分的长度均为2。第一圈的起始位置为(0,0)。长...原创 2019-11-25 14:49:26 · 183 阅读 · 0 评论 -
leetcode#55跳跃游戏
题目要求:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。如:[2,3,1,1,4]输出:True[3,2,1,0,4]输出:False无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。思路: 动态规划1.首先 如果数组中不存在0 则一定...原创 2019-11-21 16:31:52 · 188 阅读 · 0 评论 -
leetcode#51 N皇后
题目要求:在一个N*N大小的棋盘上,放置N个皇后棋子,保证每个棋子不互相攻击(皇后的攻击范围为所在行列和主次对角线)列出所有解法思路:一道十分典型也算较为复杂的回溯法算法实际是对枚举的优化首先先在棋盘最左上角放置一个皇后,然后向后寻找下一个可以放置皇后的位置,找到后放下下一个皇后,再向后寻找下一个可以放下皇后的位置。直到放置完所有可以放置的位置。如果棋盘上的总棋子数等于N,则返回一个正...原创 2019-11-21 14:14:58 · 133 阅读 · 0 评论 -
leetcode#54螺旋矩阵
题目要求:给定一个矩阵,按螺旋顺序输出各个元素例子:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]思路:模拟螺旋线路,进行循环每个大循环中嵌套四个小循环分别输出该次循环右下左上顺序历遍的元素即 最外层循环中包括右向循环输出123下循环输出69左循环输出87上循环输出4实现:思路很...原创 2019-11-18 17:08:39 · 168 阅读 · 0 评论 -
leetcode#49字母异位词分组
题目要求:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:input:[“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]output:[[‘eat’, ‘tea’, ‘ate’], [‘tan’, ‘nat’], [‘bat’]]思路1前两天写回溯法写魔怔了。。看到题第一反应是用回溯法。结果超时了事实证明算...原创 2019-11-15 15:06:41 · 148 阅读 · 0 评论 -
Python 回溯算法
最近leetcode刷题遇到了许多和回溯法有关的题,然而对回溯法完全没有过系统的了解明显感觉费力了很多狠心打算一次把回溯法弄懂,开个贴记录一下学习过程回溯法的基本模板class solution: def solvepermutation(self,*arg,**kwg): pass #初始化输入输出内容 #定义helper函数,构建回溯主体 def h...原创 2019-11-14 15:58:06 · 1796 阅读 · 0 评论 -
leetcode#42接雨水
题目要求:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2019-11-13 17:05:29 · 131 阅读 · 0 评论 -
leetcode#34两次二分查找
题目要求:在一个排序好的数组中寻找target 并返回target的起始index如不存在 则返回[-1,-1]要求时间时间复杂度为O(logn)思路:显然看到复杂度为logn需要利用二分查找!!!二分查找踩坑!!!!之前对于二分查找只是粗略的理解概念,知道对于logn的时间复杂度需要利用二分查找并没有完整的写过详细代码所以这一次写的时候对于边界处理不够仔细 经常会出现死循环的问题...原创 2019-11-07 16:57:02 · 214 阅读 · 0 评论 -
leetcode#30串联所有单词的字串
题目要求:给定一个字符串和一个words的列表找出字符串中由words中所有元素串联起来的字串eg:s = “barfoothefoobarman”words = [“foo”,“bar”]输出:[0,9]输入:s = “wordgoodgoodgoodbestword”words = [“word”,“good”,“best”,“word”]输出:[]思路:利用滑动窗口...原创 2019-11-06 16:52:49 · 228 阅读 · 0 评论 -
leetcode#22括号生成
题目要求:给定括号对数 返回所有符合要求的括号组合eg:输入:1输出:()输入:2输出:(()) () ()思路:原本打算用递归的思想每一个括号都加在上一个括号中每一个独立存在的()中间和后面但是实际编程的过程中发现 会出现重复的解在最后去重虽然可以得出正确答案 但效率低下class Solution: def generateParenthesis(self, n...原创 2019-11-06 16:39:53 · 120 阅读 · 0 评论 -
leetcode#20有效括号
题目要求:判断一个括号组成的字符串是否有效有效原则:每个括号都能找到使其闭合的另一半括号eg:{([]())} 有效(])无效思路:对于连续的左括号 先对其进行保存然后每输入一个右括号 去比对保存的最后一个左括号是否和它是一对的 如果是 继续读取输入如果不是 则判断该括号无效实现:用栈先进后出的原理能很好的实现上述思路将连续左括号压入栈中 出现右括号 则对比最后压入的左括号...原创 2019-11-06 16:28:30 · 156 阅读 · 0 评论
分享