Sulimin
首页
归档
分类
标签
关于
每日目标
剑指Offer63-动态规划-股票的最大利润
假设把某股票的价格按照先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例1: 输入:[7,1,5,3,6,4] 输出:5 解释:在第2天(股票价格=1)的时候买入,在第5天(股票价格=6)的时候卖出,最大利润=6-1=5。 注意利润不能是7-1=6,因为卖出价格需要大于买入价格。 示例2: 输入:[7,6,4,3,1] 输出:0 解释:在这种情况下,没有交易完成,所以最大利润
2020-11-16
剑指Offer49-动态规划-丑数
我们把只包含质因子2、3和5的数称为丑数(Ugly Number)。求按从小到大的顺序的第$n$个丑数。 示例: 输入:n = 10 输出:12 解释:1,2,3,4,5,6,7,8,9,10,12是前10个丑数 说明: 1是丑数 n不超过1690 注意:本题与主站264题相同: class Solution: def nthUglyNumber(self, n): 解题思路: 丑数的递推
2020-11-16
剑指Offer48-动态规划-最长不含重复字符的子字符串
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例1: 输入:"abcabcbb" 输出:3 解释:因为无重复字符的最长子串是"abc",所以其长度为3。 提示: s.length <= 40000 class Solution: def lengthOfLongestSubstring(self, s): 解题思路: 长度为$N$的字符串共有$\fr
2020-11-16
剑指Offer46-动态规划-把数字翻译成字符串
给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成”a”,1翻译成”b”,$\cdots$,11翻译成’l’,$\cdots$,25翻译成”z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 示例1: 输入:12258 输出:5 解释:12258有5种不同的翻译,分别是" 提示: 0 <= num < 2^31 class Soluti
2020-11-16
剑指Offer42-动态规划-连续子数组的最大和
输入一个整数数组,数组种的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为$O(n)$。 示例1: 输入:nums = [-2, 1, -3, 4, -1, 2, 1, -5, 4] 输出:6 解释:连续子数组[4,-1,2,1]的和最大,为6。 提示: 1 <= arr.length <= 10^5 -100 <= arr[i] <= 10
2020-11-16
剑指Offer47-动态规划-礼物的最大价值
在一个$m*n$的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。 示例1: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 12 解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物 提示: 0 < grid.length <=
2020-11-16
剑指Offer10-动态规划-II青蛙跳台阶问题
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个$n$级的台阶总共有多少种跳法。 答案需要取模$1e9+7(1000000007)$,如计算初始结果为:1000000008,请返回1。 示例1: 输入:n = 2 输出:2 示例2: 输入:n = 7 输出:21 示例3: 输入:n = 0 输出:1 提示: 0 <= n <= 100 注意:本题与主站70题相同。
2020-11-16
剑指Offer10-动态规划-斐波那契数列
x写一个函数,输入$n$,求斐波那契(Fibonacci)数列的第$n$项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N-1) + F(N-2),其中 N > 1. 斐波那契数列由0和1开始,之后的斐波那契数就是由之前的两数相加得出。 答案需要取模1e9+7(1000000007),如计算初始结果为:1000000008,请返回1。 示例1: 输入:n
2020-11-16
剑指Offer67-把字符串转换成整数
写一个函数StrToInt,实现把字符串转成整数这个功能。不能使用atoi或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后尽可能多的连续数字组合起来,作为该整数的正负号;假设第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可
2020-11-15
剑指Offer59-I滑动窗口的最大值
剑指Offer59-I题目分析解题思路: 设窗口区间为[i,j],最大值为xj。当窗口向前移动一格,则区间变为[i+1,j+1],即添加了nums[j+1],删除了nums[i]。 暴力法:遍历整个窗口区间获得最大值$x_{j+1}=max(nums(i+1),\cdots,num(j+1))$ 根据以上分析,暴力法的时间复杂度为$O((n-k+1)k)\approx O(nk)$ 设数组num
2020-11-13
1
2
3
4
5
…
11
搜索
×
关键词