随笔分类 - Leetcode
1
摘要:题目链接:卡牌分组 题意:给定一副牌,每张牌上都写着一个整数。 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。 题解:用map统计一下每个数字出现的次数,然后求这些次
阅读全文
摘要:题目链接: 三维形体的表面积 题意:在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。 每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。 请你返回最终形体的表面积。 题解:感觉这题就是要把题读懂。。。 1、每个格子上是否有立方体。有立方
阅读全文
摘要:题目链接:面试题 17.16. 按摩师 题意:一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。 题解:在这几天做了校招笔试题之后,突然做
阅读全文
摘要:题目链接:链表的中间结点 题意:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 题解:两个解法都很经典。 1、先遍历记录链表长度,再走到len/2的位置就可以了。 2、用两个指针,前一个走两步,后一个走一步。这样前面的走到末尾时,后面的刚
阅读全文
摘要:题目链接:使数组唯一的最小增量 题意:给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。 返回使 A 中的每个值都是唯一的最少操作次数。 题解: 1、暴力sort。O(nlogn)。排序以后,如果当前数字<=前一个数字,那么就把当前的数字变成前一个数字+1。 增量就是A[
阅读全文
摘要:题目链接:水壶问题 题意:有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。 你允许: 装满任意一个水壶清空任意一个水壶从一个水壶向另外一个水壶倒水,直到装满或者倒空 题
阅读全文
摘要:题目链接:最小的k个数 题意:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 题解:感觉应该是第二次做了。。最简单的想法就是,sort排序。 但是加了一个堆的做法,但是不是用手写堆,用的优先队列。 (然而我堆跑
阅读全文
摘要:题目链接:最长回文串 题意:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。 注意:假设字符串的长度不会超过 1010。 题解:啊这里看题啊,我还不知道为啥标的简单。。这里是让你构造回文串。 所以
阅读全文
摘要:题目链接:矩形重叠 题意:矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。 如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。 给出两个矩形,判断它们是否重叠并返回结果。 题解:感
阅读全文
摘要:题目链接:反转链表 II 题意:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明:1 ≤ m ≤ n ≤ 链表长度。 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL 题解:感觉就是k个一组反转链表改了下。。还简
阅读全文
摘要:题目链接:分隔链表 题意:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 题解:QAQ刚开始看题目看错了。以为是那种排序。要按大小的。写了一堆错的。然后重新看题,发现简单了不少啊。 用两个链表分别放
阅读全文
摘要:题目链接:删除排序链表中的重复元素 题意:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 题解:这个的上一题是也是删除排序链表的重复元素,不过元素都删掉。。在剑指offer里也有做过。可以看链接。 这个就是在上个题的基础上做一点修改。最后更新节点时,直接指向这个重复节点的最后一个节点
阅读全文
摘要:题目链接:旋转链表 题意:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4
阅读全文
摘要:题目链接:K 个一组翻转链表 题意:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 给你这个链表:1->2->3->4->5 当 k = 2 时,应当返回: 2->1
阅读全文
摘要:题目链接:两两交换链表中的节点 题意:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 给定 1->2->3->4, 你应该返回 2->1->4->3. 题解:这个题建议自己画个图。。 主要步骤大概就以下三步。能想出来,这个题
阅读全文
摘要:题目链接:合并K个排序链表 题意:合并k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 题解:这题的前身是合并两个排序链表。在剑指里有写。可以点击链接查看。。 这个题,最好就是用小顶堆,O(nlog(K))。用c++的优先队列可以解决这个小顶堆。 把每个节点丢进优先队列,然后以出队列
阅读全文
摘要:题目链接:两数相加 题意:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 题解:每次
阅读全文
摘要:题目链接:拼写单词 题意:给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。 注意:每次拼写时,chars 中的每个字母都只能用一次。
阅读全文
摘要:题目链接:最长回文子串 题意:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 题解: 1、dp做法。思考一下回文子串的条件,头尾至中间相对应,因此我们用这个来记录状态。 dp[i][j]表示从i到j这个字符串。初始化先把dp[i][i]的状态做标记,因为单个
阅读全文
摘要:题目链接: 字符串压缩 题意:字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。 题解:十分暴力的做法。跑了16ms
阅读全文
1

浙公网安备 33010602011771号