面试题
郑大那只鸟
一只迷途中的大学生
展开
-
卡牌分组 C语言
给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。 示例 1:输入:[1,2,3,4,4,3,2,1]输出:true解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]示例 2:输入...原创 2020-03-27 21:10:34 · 288 阅读 · 0 评论 -
三维形体的表面积 C语言
注释中有分析哦!在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。请你返回最终形体的表面积。示例 1:输入:[[2]] 输出:10 示例 2:输入:[[1,2],[3,4]] 输出:34 示例 3:输入:[[1,0],[0,2]] 输出:16来源:力扣(LeetCod...原创 2020-03-25 20:33:18 · 223 阅读 · 0 评论 -
寻找两个有序数组的中位数 C语言 就怕你不会
反正作为菜鸡的我 这道题是真真正正难住了我,找了无数题解 看了n遍代码 才真正搞懂 所以我决定要好好把这道题撕一撕。先把解析资料放这是不是资料看得头大 让我通俗的讲一讲:第一点对于合并后的数组,其前一半的数组是不是肯定有前n个A数组中的数和前m个B数组中的数组成,我要是能确定n和m是不是肯定能得出答案 ps:m+n是定值是Asize+Bsize的一半所以肯定是有限个组...原创 2020-03-25 18:50:02 · 689 阅读 · 0 评论 -
链表的中间结点 C语言
l给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。(测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返回了一个 ListNode 类型的对象 ans,这样: ans.val =3, ans.next...原创 2020-03-23 21:44:05 · 139 阅读 · 0 评论 -
矩形重叠 C语言
矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3] 输出:true 示例 2:输入:rec1 ...原创 2020-03-18 21:58:41 · 1538 阅读 · 0 评论 -
字符串压缩
字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:“aabcccccaaa” 输出:“a2b1c5a3” 示例2:输入:“abbccd” 输出:“abbccd” 解释:“abbccd"压缩...原创 2020-03-16 23:05:51 · 424 阅读 · 0 评论 -
多数元素 C语言
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3] 输出: 3 示例 2:输入: [2,2,1,1,1,2,2] 输出: 2来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/majority...原创 2020-03-13 23:21:42 · 432 阅读 · 0 评论 -
领扣1071 字符串的最大公因子 C语言
对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。示例 1:输入:str1 = “ABCABC”, str2 = “ABC”输出:“ABC”示例 2:输入:str1 = “ABABAB”, str2 = “ABAB”输出:“AB”...原创 2020-03-12 16:20:49 · 129 阅读 · 0 评论 -
1013 将数组分成和相等的三份 C语言
给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1])...原创 2020-03-11 14:37:01 · 440 阅读 · 0 评论 -
二叉树的直径 C语言
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。来源:力扣(Leet...原创 2020-03-10 13:52:04 · 304 阅读 · 0 评论 -
零钱兑换 动态规划 C语言
给定不同面额的硬币 coins 和一个总金额amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = 5 + 5 + 1 示例 2:输入: coins = [2], amount = 3 输出: -1来源:力扣(Le...原创 2020-03-08 15:25:16 · 856 阅读 · 0 评论 -
面试题57 - II. 和为s的连续正数序列 C语言 滑动窗口
今天又见到一个滑动窗口的题目 记得之前在哪里见过,看来这个算法一定要好好练练输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9 输出:[[2,3,4],[4,5]] 示例 2:输入:target = 15 输出:[[1,2,3,4,5],[4,5...原创 2020-03-06 16:54:00 · 145 阅读 · 0 评论 -
分糖果 C语言
排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n颗糖果。重复上述过程(每次都比上一次多给...原创 2020-03-05 14:51:06 · 1747 阅读 · 0 评论 -
腐烂的橘子 C语言
//首先需要队列的相关函数typedef struct{ int (*index)[2]; int head; int tail;}queue;//队列基本元素//队列的创建queue * creat(int size){ queue* tar = (queue *)malloc(sizeof(queue)); tar->head = 0...原创 2020-03-04 17:38:44 · 187 阅读 · 0 评论 -
合并排序数组
给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。示例:输入: A = [1,2,3,0,0,0], m = 3 B = [2,5,6], n = 3输出: [1,2,2,3,5,6]初始化 A 和 B 的元素数量分别为 m 和 n。来源:力扣(LeetCode)链接:https://leetcode...原创 2020-03-03 14:47:43 · 253 阅读 · 0 评论