刷题
文章平均质量分 54
luna0_0
这个作者很懒,什么都没留下…
展开
-
【leetcode 621. 任务调度器】
621. 任务调度器题目if - else 为主的条件判断问题)题目给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。示.原创 2021-12-10 22:06:05 · 120 阅读 · 0 评论 -
【leetcode 969. 煎饼排序】
969. 煎饼排序题目if - else 为主的条件判断问题)题目给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序。一次煎饼翻转的执行过程如下:选择一个整数 k ,1 <= k <= arr.length反转子数组 arr[0…k-1](下标从 0 开始)例如,arr = [3,2,1,4] ,选择 k = 3 进行一次煎饼翻转,反转子数组 [3,2,1] ,得到 arr = [1,2,3,4] 。以数组形式返回能使 arr 有序的煎饼翻转操作所对应的 k 值.原创 2021-12-10 15:46:33 · 115 阅读 · 0 评论 -
【leetcode 860. 柠檬水找零】
860. 柠檬水找零题目if - else 为主的条件判断问题)题目在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。给你一个整数数组 bills ,其中 bills[i] 是第 i 位顾客付的账。如果你能给每位顾客正确找零,返回 true ,否则返回 .原创 2021-12-10 13:45:27 · 94 阅读 · 0 评论 -
【leetcode 859. 亲密字符串】
859. 亲密字符串题目考虑两种情况:1.字符串相等时,考虑是否有重复字符 2.字符串不相等时,是否交换可得;)题目给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就返回 true ;否则返回 false 。交换字母的定义是:取两个下标 i 和 j (下标从 0 开始)且满足 i != j ,接着交换 s[i] 和 s[j] 处的字符。例如,在 “abcd” 中交换下标 0 和下标 2 的元素可以生成 “cbad” 。示例 1:.原创 2021-12-10 13:11:18 · 88 阅读 · 0 评论 -
【leetcode 面试题 17.09. 第 k 个数】
面试题 17.09. 第 k 个数题目使用dp + 指针)题目有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。示例 1:输入: k = 5输出: 9使用dp + 指针class Solution { public int getKthMagicNumber(int k) { int[] dp = new int[k]; .原创 2021-12-09 16:44:51 · 190 阅读 · 0 评论 -
【leetcode 933. 最近的请求次数】
933. 最近的请求次数题目使用队列题目写一个 RecentCounter 类来计算特定时间范围内最近的请求。请你实现 RecentCounter 类:RecentCounter() 初始化计数器,请求数为 0 。int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。保证 每次对 ping 的调用都使用比之前更大的 t 值。示.原创 2021-12-09 16:03:02 · 77 阅读 · 0 评论 -
【leetcode 1670. 设计前中后队列】
1670. 设计前中后队列题目使用两个数组使用链表题目请你设计一个队列,支持在前,中,后三个位置的 push 和 pop 操作。请你完成 FrontMiddleBack 类:FrontMiddleBack() 初始化队列。void pushFront(int val) 将 val 添加到队列的 最前面 。void pushMiddle(int val) 将 val 添加到队列的 正中间 。void pushBack(int val) 将 val 添加到队里的 最后面 。int popF.原创 2021-12-09 15:30:47 · 100 阅读 · 0 评论 -
【leetcode 641. 设计循环双端队列】
641. 设计循环双端队列题目使用数组题目设计实现双端队列。你的实现需要支持以下操作:MyCircularDeque(k):构造函数,双端队列的大小为k。insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 trueinsertLast():将一个元素添加到双端队列尾部。如果操作成功返回 true。deleteFront():从双端队列头部删除一个元素。 如果操作成功返回 true。deleteLast():从双端队列尾部删除一个元素。如果操作成功返回 true.原创 2021-12-08 16:17:32 · 48 阅读 · 0 评论 -
【leetcode 622. 设计循环队列】
622. 设计循环队列题目使用数组题目设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。Front:.原创 2021-12-08 15:30:50 · 65 阅读 · 0 评论 -
【leetcode 86. 分隔链表】
86. 分隔链表题目题目给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置。示例 1:输入: head = [1,4,3,2,5,2], x = 3输出: [1,2,2,4,3,5]示例 2:输入: head = [1,2], x = 2输出: [1,2]来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl.原创 2021-12-08 13:56:30 · 70 阅读 · 0 评论 -
【leetcode 82. 删除排序链表中的重复元素 II】
82. 删除排序链表中的重复元素 II题目题目存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。返回同样按升序排列的结果链表。示例 1:输入: head = [1,2,3,3,4,4,5]输出: [1,2,5]示例 2:输入: head = [1,1,1,2,3]输出: [2,3]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remo.原创 2021-12-07 13:43:08 · 64 阅读 · 0 评论