随笔 - 545
文章 - 0
评论 - 31
阅读 -
72万
04 2020 档案
[LeetCode] 651. 四键键盘 ☆☆☆(动态规划)
摘要:动态规划之四键键盘 描述 假设你有一个特殊的键盘,包含以下的按键: key 1:(A):在屏幕上打印一个 A key 2:(Ctrl-A):选中整个屏幕 key 3:(Ctrl-C):复制选中区域到缓冲区 key 4:(Ctrl-V):将缓冲区内容输出到上次输入的结束位置,并显示在屏幕上 现在,你只
阅读全文
一行代码就能解决的算法题
摘要:脑转弯题目 Nim 游戏 游戏规则是这样的:你和你的朋友面前有一堆石子,你们轮流拿,一次至少拿一颗,最多拿三颗,谁拿走最后一颗石子谁获胜。 假设你们都很聪明,由你第一个开始拿,请你写一个算法,输入一个正整数 n,返回你是否能赢(true 或 false)。 比如现在有 4 颗石子,算法应该返回 fa
阅读全文
博弈问题--石头游戏(动态规划)
摘要:动态规划之博弈问题 描述 你和你的朋友面前有一排石头堆,用一个数组 piles 表示,piles[i] 表示第 i 堆石子有多少个。你们轮流拿石头,一次拿一堆,但是只能拿走最左边或者最右边的石头堆。所有石头被拿完后,谁拥有的石头多,谁获胜。 题目解释: 石头的堆数可以是任意正整数,石头的总数也可以是
阅读全文
[LeetCode] 322. 零钱兑换 ☆☆☆(动态规划)
摘要:动态规划套路详解 描述 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 =
阅读全文
java趣题
摘要:try、catch面试题 ++计算 int a = 2; int b = (a++) << (++a) + (++a); System.out.println(b + " " + a); 类似a++,++a这样的表达式,值不会边,但是a会变。即:b = 2 << (4 + 5) = 1024 a =
阅读全文
[LeetCode] 516. 最长回文子序列 ☆☆☆(动态规划)
摘要:https://leetcode-cn.com/problems/longest-palindromic-subsequence/solution/zi-xu-lie-wen-ti-tong-yong-si-lu-zui-chang-hui-wen/ 描述 给定一个字符串s,找到其中最长的回文子序列
阅读全文
[LeetCode] 337. 打家劫舍III ☆☆☆(动态规划)
摘要:https://leetcode-cn.com/problems/house-robber-iii/solution/tong-yong-si-lu-tuan-mie-da-jia-jie-she-wen-ti-b-2/ 描述 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。
阅读全文
算法基础--贪心算法
摘要:贪心算法 算法描述 什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多的条件(贪心选择性质),但是效率比动态规划要高。 比如说一个算法问题使用暴力解法需要指数级时间,如果能使用动态规划消除重叠子问题,就可以降到多项式级别的时间,如果满足贪心选择性质,那
阅读全文