Leetcode 135.分发糖果 Posted on 2019-02-14 | 方法方法1:左右扫描 从左向右移动:If ratings[i] > ratings[i-1], then candy[i] = candy[i-1]+1. 从右向左移动:If ratings[i] > ratings[i+1], then candy[i] = max(candy[i], ... Read more »
Leetcode 860.柠檬水找零 Posted on 2019-02-14 | 860. 柠檬水找零题目在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 注意,一开始 ... Read more »
Leetcode 455.分发饼干 Posted on 2019-02-14 | 455. 分发饼干题目假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 ... Read more »
Leetcode 55.跳跃游戏 Posted on 2019-02-14 | 55. 跳跃游戏题目给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。12345678910示例 1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一 ... Read more »
算法导论 贪心算法之活动选择问题 Posted on 2019-02-14 | 代码贪心算法的递归实现 $O(n)$123456789101112131415"""递归贪心算法"""def recursive_activity_selector(s,f,k,n): m=k+1 while m<n and s[m]<f[k]: m+=1 ... Read more »
Leetcode 64.最小路径和 Posted on 2019-02-13 | 方法方法1:动态规划 O(mn)12345678910111213141516171819202122class Solution(object): def minPathSum(self, grid): """ :type grid: List[List[int] ... Read more »
Leetcode 213.打家劫舍II Posted on 2019-02-13 | 213. 打家劫舍 II题目你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负 ... Read more »
剑指offer 变态跳台阶 Posted on 2019-02-13 | 题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法 方法思路:在跳第1次时,有n种跳法,分别为1,2,….,n第一次跳1级,剩余n-1级,f(n-1)第一次跳2级,剩余n-2级, f(n-2)……第一次跳n-1级,剩余1级,f(1)可 ... Read more »
剑指offer 跳台阶 Posted on 2019-02-13 | 题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 方法最简单的情况如果只有一级台阶,只有一种跳法。如果有两级台阶,有两种跳法:一种分两次跳,每次跳1级;一种一次跳2级。 一般情况把n级台阶时的跳法看作n的函数,记作f(n) ... Read more »