08 2021 档案

摘要:208. 实现 Trie (前缀树) Trie(发音类似 "try")或者说前缀树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀树对象 void insert(String wo 阅读全文
posted @ 2021-08-25 17:03 当康 阅读(179) 评论(0) 推荐(0)
摘要:300. 最长递增子序列 思路 最长上升子序列是动规的经典题目。 dp[i]的定义 dp[i]表示i之前包括i的最长上升子序列。 状态转移方程 位置i的最长升序子序列等于j从0到i-1各个位置的最长升序子序列 + 1 的最大值。 所以:if (nums[i] > nums[j]) dp[i] = m 阅读全文
posted @ 2021-08-18 16:08 当康 阅读(115) 评论(0) 推荐(0)
摘要:121. 买卖股票的最佳时机 思路 贪心 因为股票就买卖一次,那么贪心自然就是取最左最小值,取最右最大值,那么得到的差值就是最大利润。 动态规划 确定dp数组(dp table)以及下标的含义 dp[i][0] 表示第i天持有股票所得现金(一开始现金是0,那么加入第i天买入股票现金就是 -price 阅读全文
posted @ 2021-08-12 15:18 当康 阅读(332) 评论(0) 推荐(0)
摘要:198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃 阅读全文
posted @ 2021-08-11 23:41 当康 阅读(63) 评论(0) 推荐(0)
摘要:139. 单词拆分 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 输入: s = "leetcode", wordDict = ["leet 阅读全文
posted @ 2021-08-09 00:03 当康 阅读(132) 评论(0) 推荐(0)
摘要:322. 零钱兑换 给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回-1。 你可以认为每种硬币的数量是无限的。 输入:coins = [1, 2, 5], amount 阅读全文
posted @ 2021-08-06 17:43 当康 阅读(115) 评论(0) 推荐(0)
摘要:518. 零钱兑换 II 给你一个整数数组coins表示不同面额的硬币,另给一个整数amount表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带符号整数。 输入:amount = 阅读全文
posted @ 2021-08-04 09:57 当康 阅读(197) 评论(0) 推荐(0)