【Leetcode】160.相交链表 160 相交链表题目:编写一个程序,找到两个单链表相交的起始节点。 方法一:分三个步骤: 获得两个链表的长度,相减得到长度差。 让长的链表先走长度差步 两个链表一起走,直到碰上相同的节点返回 注意:边界处理 代码: 123456789101112131415161718192021222324252627282930public ListNode getIntersectionNode 2021-02-17 算法 链表
【Leetcode】1663.具有给定数值的最小字符串 1663.具有给定数值的最小字符串题目小写字符 的 数值 是它在字母表中的位置(从 1 开始),因此 a 的数值为 1 ,b 的数值为 2 ,c 的数值为 3 ,以此类推。 字符串由若干小写字符组成,字符串的数值 为各字符的数值之和。例如,字符串 “abe” 的数值等于 1 + 2 + 5 = 8 。 给你两个整数 n 和 k 。返回 长度 等于 n 且 数值 等于 k 的 字典序最小 的字符串。 2021-02-17 算法 贪心算法
【Leetcode】234.回文链表 234.回文链表题目:请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 方法1:用栈将链表中的节点全部放入一个栈中,由于栈的先进后出的特性,它依次弹出的顺序为链表的逆序。因此,依次比较链表节点和栈弹出的节点,就可以判断链表是否为回文链表。 12345678910111213141 2021-02-17 算法 链表
【Leetcode】435.无重叠区间 435.无重叠区间题目给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 示例 1: 输入: [ [1,2], [2,3], [3,4], [1,3] ] 输出: 1 解释: 移除 [1,3] 后,剩下的区间没有重叠。 示例 2: 输入: [ [1,2], [1,2 2021-02-17 算法 贪心算法
【Leetcode】502.IPO 502 IPO题目假设 力扣(LeetCode)即将开始其 IPO。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。 给定若干个项目。对于每个项目 i,它都有一个纯利润 Pi,并且需要最小的资本 Ci 来启动相应的项目。最初, 2021-02-17 算法 贪心算法
【Leetcode】252.会议室 252.会议室题目给定一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi] ,请你判断一个人是否能够参加这里面的全部会议。 示例 1: 输入:intervals = [[0,30],[5,10],[15,20]] 输出:false 示例 2: 输入:intervals = [[7,10],[2,4]] 输出 2021-02-17 算法 贪心算法
【Leetcode】621.任务调度器 621. 任务调度器题目给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。 然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命 2021-02-17 算法 贪心算法
【Leetcode】61.旋转链表 61 旋转链表题目:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4-& 2021-02-17 算法 链表
【Leetcode】82.删除排序链表中的重复元素 II 82 删除排序链表中的重复元素 II题目:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3 思路:在迭代过程中,如果cur.next.val 2021-02-17 算法 链表
【Leetcode】861.翻转矩阵后的得分 861. 翻转矩阵后的得分题目有一个二维矩阵 A 其中每个元素的值为 0 或 1 。 移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。 在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。 返回尽可能高的分数。 示例: 输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]] 输出:39 2021-02-17 算法 贪心算法