随笔分类 - 算法学习
摘要:package LeetCode.DPpart09; /** * 377. 组合总和 Ⅳ * 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 * 题目数据保证答案符合 32 位整数范围。 * 示例:
阅读全文
摘要:package LeetCode.DPpart08; import java.util.HashSet; import java.util.List; /** * 139. 单词拆分 * 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s
阅读全文
摘要:package LeetCode.DPpart07; /** * 322. 零钱兑换 * 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 * 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回-1 。 * 你可
阅读全文
摘要:package LeetCode.DPpart06; /** * 518. 零钱兑换 II * 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 * 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 * 假设每一种面额
阅读全文
摘要:package LeetCode.DPpart05; /** * 1049. 最后一块石头的重量 II * 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 * 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和y,且x
阅读全文
摘要:package LeetCode.DPpart04; /** * 416. 分割等和子集 * 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 * 示例: * 输入:nums = [1,5,11,5] * 输出:true * 解
阅读全文
摘要:package LeetCode.DPpart03; /** * 343. 整数拆分 * 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。 * 返回 你可以获得的最大乘积 。 * 示例: * 输入: n = 2 * 输出: 1 * 解释: 2 =
阅读全文
摘要:package LeetCode.DPpart02; /** * 62. 不同路径 * 一个机器人位于一个 m x n网格的左上角 (起始点在下图中标记为 “Start” )。 * 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 * 问总共有多
阅读全文
摘要:package LeetCode.DPpart01; /** * 509. 斐波那契数 * 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。 * 该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: * F(0) = 0,F(1) = 1 * F(n) =
阅读全文
摘要:package LeetCode.greedypart06; /** * 738. 单调递增的数字 * 当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y时,我们称这个整数是单调递增的。 * 给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。 * 示例: * 输入
阅读全文
摘要:package LeetCode.greedypart05; import java.util.Arrays; /** * 435. 无重叠区间 * 给定一个区间的集合intervals,其中 intervals[i] = [starti, endi]。返回 需要移除区间的最小数量,使剩余区间互不重
阅读全文
摘要:package LeetCode.greedypart04; /** * 860. 柠檬水找零 * 在柠檬水摊上,每一杯柠檬水的售价为 5美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 * 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给
阅读全文
摘要:package LeetCode.greedypart03; /** * 1005. K 次取反后最大化的数组和 * 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: * 选择某个下标 i并将 nums[i] 替换为 -nums[i] 。 * 重复这个过程恰好 k 次。可以多次选
阅读全文
摘要:package LeetCode.greedypart02; /** * 122. 买卖股票的最佳时机 II * 给你一个整数数组 prices ,其中prices[i] 表示某支股票第 i 天的价格。 * 在每一天,你可以决定是否购买和/或出售股票。 * 你在任何时候最多只能持有 一股 股票。你也
阅读全文
摘要:package LeetCode.greedypart01; import java.util.Arrays; /** * 455. 分发饼干 * 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 * 对每个孩子 i,都有一个胃口值g[i],这是能让孩子们满足胃
阅读全文
摘要:package LeetCode.backtrackpart06; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.List; /** *
阅读全文
摘要:package LeetCode.backtrackpart05; import java.util.ArrayList; import java.util.List; /** * 491. 递增子序列 * 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两
阅读全文
摘要:package LeetCode.backtrackpart04; import java.util.ArrayList; import java.util.List; /** * 93. 复原 IP 地址 * 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导
阅读全文
摘要:package LeetCode.backtrackpart03; import java.lang.management.LockInfo; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedLi
阅读全文
摘要:package LeetCode.backtrackpart02; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /** * 216. 组合总和 III * 找出所有相加之和为 n 的k
阅读全文