
算法和数据结构
文章平均质量分 79
休止符x
菜鸟
展开
-
牛客-购物单(01背包问题)过程梳理、代码
因为题目要求就是"每个主件可以有 0 个、 1 个或 2 个附件",所以每个主件最多2个附件,然后可以按照附件个数分为主件、主件+附件1、主件+附件2、主件+附件1+附件2这几种情况,在考虑每个主件时,把这4种情况都算一遍,取最大值即可。题目给的例子有2个,第1个例子,带有附件的主件是排在第1位的,这样在只考虑第1个主件的所有情况时,不会用到前面的主件结果,因为前面没有主件,而第2、第3个主件没有附件,就和经典的01背包是一样的了。所以这个例子体现不出差别。所以选第2个例子,带有附件的主件不在第1位。原创 2024-04-04 12:20:45 · 572 阅读 · 1 评论 -
LeetCode反转链表Java实现(含非递归和递归两种解法)
反转链表题目要求反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路反转链表直白讲就是让每个结点的next引用指向该结点的上一个结点(头结点则是next变为null)。第一步,定义引用cur代表当前结点,pre代表上一个结点。cur初始指向头结点,pre初始为...原创 2019-09-29 22:07:29 · 348 阅读 · 0 评论 -
LeetCode两数之和Java实现
题目要求给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力...原创 2019-10-02 12:15:00 · 212 阅读 · 0 评论