数据结构和算法
数据结构和算法
JaquanC
这个作者很懒,什么都没留下…
展开
-
leetcode解题-滑动窗口
滑动窗口思路:解决部分数组问题时,设置两个索引下标i,j{i,j}i,j,i{i}i为左边界,j{j}j为右边界,逐渐遍历整个数组,i{i}i和j{j}j组成的子数组形成长度变化的滑动窗口,直至i{i}i遍历完整个数组。应用一:Leetcode 3:Longest Substring Without Repeating Characters在一个字符串中寻找没有重复字母的最长子串,返回长度...原创 2019-04-10 14:32:40 · 414 阅读 · 0 评论 -
leetcode解题:字符切片
字符切片:字符串[开始索引:结束索引:步长]切取字符串为开始索引到结束索引-1内的字符串步长不指定时,步长为1 字符串[开始索引:结束索引]切片操作示例应用一:leetcode 7. 整数反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 12...原创 2019-04-10 15:30:19 · 196 阅读 · 0 评论 -
leetcode解题:动态规划(上)
首先讲一点:动态规划(Dynamic Programming)的名字有些言过其实,“Programming{Programming}Programming”的意思不是“编程”,这里指的是“递推”的意思,没有高瞻远瞩的意思,也没有计划未来什么事情的意思。这里主要讲四点:递归+记忆化 -> 递推状态的定义:opt[n], dp[n], fib[n]{opt[n],\ ...原创 2019-04-12 22:05:53 · 464 阅读 · 0 评论 -
leetcode解题:动态规划(下)
更新中。。。。动态规划(Dynamic Programming)四要点:递推状态的定义:opt[n], dp[n], fib[n]{opt[n],\ dp[n], \ fib[n]}opt[n], dp[n], fib[n]状态转移方程:opt[n]=best_of(opt[n−1], opt[n−2], ...){opt[n]...原创 2019-04-13 09:05:50 · 204 阅读 · 0 评论 -
leetcode解题:递归&分治(上)
递归递归起源:从前有座山山里有个庙庙里有个老和尚讲故事讲的故事是什么呢?从前有座山…《盗梦空间》里的梦也是递归的例子,强烈建议观看这部电影。代码例子:计算n!{n!}n!n!=1∗2∗3∗...∗n{n!=1*2*3*...*n}n!=1∗2∗3∗...∗ndef Factorial(n): if n<=1: return 1 return n * Fac...原创 2019-04-13 09:52:05 · 300 阅读 · 0 评论 -
leetcode解题:递归&分治(下)
这篇博客讲具体题目50. Pow(x, n)实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例:输入: 2.00000, 10输出: 1024.00000===========================输入: 2.10000, 3输出: 9.26100===========================输入: 2.00000, -2输出: 0.25000...原创 2019-04-13 10:29:36 · 288 阅读 · 0 评论 -
leetcode解题:买卖股票的最佳时机系列
题目按照从易到难的顺序解决。121. 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时...原创 2019-04-18 09:13:53 · 399 阅读 · 0 评论 -
leetcode解题:数组&链表
与链表有关的操作和算法题往往考的不是思维能力,代码能力才是面试官关注的。206. 反转链表反转一个单链表。输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULLPS:这个题目考的不是思维能力,而是代码能力、代码简洁程度。所以这儿背下来链表反转常用的语句是很有必要的。# Defin...原创 2019-04-18 11:36:19 · 446 阅读 · 0 评论