LeetCode-easy个人刷题笔记
文章平均质量分 92
LeetCode-easy个人刷题笔记
软工2班吴同学
这个作者很懒,什么都没留下…
展开
-
回溯总结Part1
回溯&DFS回溯可以看做DFS的一个应用。DFS一条路走到黑,而回溯装了南墙就回头。回溯动态规划共同点 用于求解多阶段决策问题。多阶段决策问题即:求解一个问题分为很多步骤(阶段); 每一个步骤(阶段)可以有多种选择。不同点 动态规划只需要求我们评估最优解是多少,最优解对应的具体解是什么并不要求。因此很适合应用于评估一个方案的效果; 回溯算法可以搜索得到所有的方案(当然包括最优解),但是本质上它是一种遍历算法,时间复杂度很高。设计状态变量 使用深度优先遍历..原创 2021-03-06 18:34:25 · 178 阅读 · 2 评论 -
【LeetCode-Easy-Java】122. 买卖股票的最佳时机 II
题目给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)的时候买入,在...原创 2020-09-25 08:24:51 · 98 阅读 · 0 评论 -
【LeetCode-Easy-Java】617. 合并二叉树
题目给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。示例输入: Tree 1 Tree 2 1 2 ...原创 2020-09-23 12:30:53 · 83 阅读 · 0 评论 -
【LeetCode-Easy-Java】198. 打家劫舍
题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。...原创 2020-09-15 14:36:35 · 124 阅读 · 0 评论 -
【LeetCode-Easy-Java】53.最大子序列和
题目:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。解题思路1:动态规划1、dp(i)表示以nums[i]为最后一个元素组成的连续子数组的最大和。2、dp(i-1)表示以nums[i-1]为最后一个元素组成的连续子数组的最大和。3、dp(i)可以表示成f(i-1)+nums[i],与dp...原创 2020-09-14 23:03:43 · 75 阅读 · 0 评论 -
【LeetCode-Easy-Java】26. 删除排序数组中的重复项
题目:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。思路:双指针, i 指向第一个元素,j 指向第二个元素,如果元素 j 和元素i相等...原创 2020-09-07 11:03:31 · 87 阅读 · 0 评论 -
【LeetCode-Easy-Java】21. 合并两个有序链表
21. 合并两个有序链表题目:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4思路:用两个指针指向分别指向两个链表,比较指针指向的两个节点,小的那个指针往后移,并且把小的那个节点添加到合并后的新链表中。dummy node:如果新链表不用dummy node记录首节点,随着...原创 2020-09-06 16:08:24 · 142 阅读 · 0 评论 -
【LeetCode-Easy-Java】1. 两数之和
1. 两数之和题目:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解法一:暴力循环法思路:建立两个for循环,相当于为数组n...原创 2020-08-29 22:38:53 · 101 阅读 · 0 评论