
LeetCode_Foreigh
黑大帅本
Do not go gentle into that good night. Old age should burn and rave at close of day. Rage, rage against the dying of the light.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
198. House Robber LeetCode分享
【代码】198. House Robber LeetCode分享。原创 2022-12-14 09:45:55 · 167 阅读 · 0 评论 -
每日一题:LC 390.消除游戏
LC 每日一题 :390 消除游戏题目简述:列表 arr 由在范围 [1, n] 中的所有整数组成,并按严格递增排序。请你对 arr 应用下述算法:从左到右,删除第一个数字,然后每隔一个数字删除一个,直到到达列表末尾。重复上面的步骤,但这次是从右到左。也就是,删除最右侧的数字,然后剩下的数字每隔一个删除一个。不断重复这两步,从左到右和从右到左交替进行,直到只剩下一个数字。给你整数 n ,返回 arr 最后剩下的数字。public int lastRemaining(int n)思路分析注原创 2022-01-02 16:18:18 · 2054 阅读 · 0 评论 -
每日一题:309. 最佳买卖股票时机含冷冻期
大家好,今天和大家分享一道动态规划的题目:最佳买卖股票时机含冷冻期,这道题目是一道熟悉的股票题,它是买卖股票的最佳时机的迭代版本。让我们一起来看看这道题目吧!描述给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。思路这道题目,关键点在于可以多次买卖+冷却原创 2021-05-27 09:51:47 · 214 阅读 · 0 评论 -
每日一题:LC:买卖股票的最佳时机
大家好,今天和大家分享一道动态规划的题目:买卖股票的最佳时机让我们一起来看看这道题目吧!描述假设你有一个数组,其中第 i\ i i 个元素是股票在第 i\ i i 天的价格。你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。思路这个股票只能买一次,卖一次。卖要在买之前。给出一个数组,一个简单的思路就是:把数组看成一个折线图,顶点的位置是我们要卖的时机。那么什么时候买呢?就是从开头到顶点位置里面的最小值。实际上这是一个全局比较的策略,我把所有可原创 2021-05-27 09:33:01 · 241 阅读 · 0 评论 -
每日一题:LEETCODE 740. 删除并获得点数
大家好,今天和大家分享一道动态规划的题目,这道题目笔者思索了有一个礼拜,最后大道至简,居然用简单的方法就做出来了,以此勉励。题目:给你一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。nums = [2,2,3,3,3,4]输出:9解释:删除 3 获得 3 个点原创 2021-05-25 09:32:52 · 226 阅读 · 1 评论 -
每日一题:1035. 不相交的线
大家好,今天分享一道LEETCODE题目:1035.不相交的线题目:在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足: nums1[i] == nums2[j] 且绘制的直线不与任何其他连线(非水平线)相交。请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。以这种方法绘制线条,并返回可以绘制的最大连线数。示例1输入:nums1 = [1,4,原创 2021-05-25 09:03:33 · 2846 阅读 · 2 评论 -
每日一题:剑指 Offer 61. 扑克牌中的顺子
大家好,今天分享一道剑指Offer简单题目:扑克牌中的顺子。题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例 1:输入: [1,2,3,4,5]输出: True示例 2:输入: [0,0,1,2,5]输出: True思路:这道题目,难点在于0可以看做是任意的数字,该如何处理这个0呢?本题主要思路如下顺子也就是5个数字,假如我们设原创 2021-05-25 08:39:32 · 255 阅读 · 0 评论 -
每日一题:LC 746. 使用最小花费爬楼梯
大家好,今天分享一道动态规划(Dynamic Programming)的题目:使用最小花费爬楼梯还是一道比较简单的动态规划的题目,下面贴一下代码:这里说一下dp法的优点,也就是记忆化之后,可以处理相对来说复杂很多的数组,比如这个:它包含了1000个数字,如果用暴力递归,笔者使用差不多100长度的时候程序就卡住了,而记忆化搜索则很快给出了答案.841,462,566,398,243,248,238,650,989,576,361,126,334,729,446,897,953,38,195,679,6原创 2021-05-10 15:59:35 · 210 阅读 · 0 评论 -
每日一题:剑指 Offer 11. 旋转数组的最小数字(第一次双百!)
大家好,我们一起来看看题目:旋转数组的最小数字这道题就是用二分,特别注意下边界问题:)来纪念下第一次双百的提交:执行用时:0 ms, 在所有 Java 提交中击败了100.00% 的用户内存消耗:37.6 MB, 在所有 Java 提交中击败了99.96% 的用户 public int minArray(int[] numbers) { if(numbers == null || numbers.length < 1) return 0; if(numbe原创 2021-05-10 10:38:38 · 76 阅读 · 0 评论 -
每日一题:NowCode 01背包回顾
// 2021/4/28 Old Versionpublic class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算01背包问题的结果 * @param V int整型 背包的体积 * @param n int整型 物品的个数 * @param vw int整型二维数组 第一维度为n,第二维度为2的二维数组,vw[i][0],vw[i][1]分别描述i+1个物品的vi,wi原创 2021-05-10 09:24:10 · 154 阅读 · 0 评论 -
每日一题:LC 367. 有效的完全平方数
大家好,今天分享一道LC简单题,有效的完全平方数给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt提示:1 <= num <= 2^31 - 1这道题的思路,可以使用binarySearch,左边界是0,关于右边界的定义,则涉及到了这道题目的理解。我们知道 (n / 2) ^ 2 > n -->n > 4;所以当n > 4 时,我们可以直接拿原创 2021-05-09 16:52:36 · 243 阅读 · 0 评论 -
LC:322零钱兑换
大家好,今天和大家分享一道动态规划的题目,零钱兑换,让我们先看看题目叭给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。这道题目,是一道典型的动态规划题,可以衍生出很多不一样的题目,如使用无限量的硬币组成的给定总金额的方法数是多少,其中有枚举的思想,斜率优化的技巧,总之这道题目代表了动态规划的一个新高度,笔者使用了3个小时,才使用代换法做出,特以此篇记原创 2021-05-06 17:05:14 · 154 阅读 · 0 评论 -
每日一题:LC238. 除自身以外数组的乘积
大家好,今天分享一道LC-Hot 除自身以外数组的乘积思路简单来说就是,将数组所有的数字相乘,然后依次相除,但是0不能做除数所以 按 0是否出现过,出现了一次,出现了两次,来分情况,以下是代码: public static int[] productExceptSelf(int[] nums) { if(nums == null || nums.length < 1) return null; if(nums.length == 1) return new原创 2021-05-05 20:47:01 · 126 阅读 · 0 评论 -
每日一题:LC198打家劫舍(我和大佬的差距)
大佬的解题思路:https://leetcode-cn.com/problems/house-robber/solution/da-jia-jie-she-dong-tai-gui-hua-jie-gou-hua-si-lu-/简洁的代码 class Solution { public int rob(int[] nums) { int pre = 0, cur = 0, tmp; for(int num : nums) {原创 2021-05-04 15:38:25 · 157 阅读 · 0 评论 -
每日一题 LC-449: 序列化和反序列化二叉搜索树
大家好,今天分享一道和二叉树有关的题目: 序列化和反序列化基本思路在序列化时,用#来表示null值,每个节点都用"_"分开,ret+=的操作使得对于二叉树的结果有一个保存的作用,相当于一个备忘录。这种String的用法也可以应用在dfs中,使用String来保存,而不是使用List<> 或者 HashMap<> 减小了常数项的空间。同时分享一个String的API: String[] split(“regex”);这个方法可以将一个String类型依据re原创 2021-05-04 11:02:01 · 120 阅读 · 0 评论 -
每日一题:LC1051高度检查器,暴力+2次优化
大家好,今天分享一道LC简单题,这道题目很有意思,一起来看一下吧题目学校在拍年度纪念照时,一般要求学生按照 非递减 的高度顺序排列。 请你返回能让所有学生以 非递减 高度排列的最小必要移动人数。 注意,当一组学生被选中时,他们之间可以以任何可能的方式重新排序,而未被选中的学生应该保持不动。输入:heights = [1,1,4,2,1,3]输出:3解释:当前数组:[1,1,4,2,1,3]目标数组:[1,1,1,2,3,4]在下标 2 处(从 0 开始计数)出现 4 vs 1 ,所以我们必原创 2021-05-02 18:11:42 · 140 阅读 · 0 评论 -
LeetCode 111. Minimum Depth of Binary Tree 和优化
今天分享一道在牛客网上的题目:111. Minimum Depth of Binary Tree ,也就是树的最小深度解法一:使用一个全局变量进行记录minLevel,但是他的结果看起来不尽如人意实际上,通过全局遍历,然后依次比较叶节点的深度,选出最小的一个depth返回时间复杂度是O(N)的在下面我们进行了优化. public static int minDepth(TreeNode root) { if(root == null) return 0; minL原创 2021-04-23 20:13:19 · 96 阅读 · 0 评论