自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 CF1954B Make it ugly

题解

2024-06-09 01:05:20 248

原创 CF1954C Long Multiplication

题解

2024-06-09 00:12:01 149

原创 CF1105B Zuhair and Strings

小写字母仅有26个,那就从a到z逐个查询,检查符合条件的子串数量,最后输出最大值即可。在一个字符串中找到最多长度为k,且由同一个小写字母组成的子串数量。

2024-05-28 00:07:20 132

原创 CF1105A Salem and Sticks

给出了n个1到100之间的数字,找到一个数字t,使得将这n个数字变到与t的绝对值小于等于1的距离之和最小。t 一定是1到100之间的数字,逐个尝试,计算每个值下的距离,找出最小的情况即可。

2024-05-28 00:03:52 220

原创 【无标题】

逐行去放置方砖,一行需要先放m / a块,之后判断是否还有空隙(n % a!= 0),有空隙则再加一块。之后再判断需要几行,最少需要 n / a行,最后如果还有空隙,就再加一块。本题数据范围较大,使用long long来存储数据。使用尺寸为a * a的方砖铺满n * m的地面,不允许切割方砖。

2023-08-28 23:05:03 76

原创 洛谷P1130 红牌

但是更换小组是很严格的,一定要相邻两个步骤之间来更换,而不能在某一步骤已经开始但还没结束的时候提出更换,并且也只能从原来的小组I更换到小组I+1,当然从小组M可以更换到小组1。例子中,可以选择小组1来完成整个过程一共花了2+6+1+8=17天,也可以从小组2开始第一步,然后第二步更换到小组3,第三步到小组1,第四步再到小组2,这样一共花了3+2+1+6=12天。接下来有M行,每行N个非负整数,第i+1(1≤i≤M)行的第j个数表示小组i完成第j步所花的天数,天数都不超过1000000。

2023-04-26 17:18:55 119

原创 腾讯2020校园招聘-后台 第一题 压缩算法

压缩算法小Q想要给他的朋友发送一个神秘字符串,但是他发现字符串的过于长了,于是小Q发明了一种压缩算法对字符串中重复的部分进行了压缩,对于字符串中连续的m个相同字符串S将会压缩为m|S,例如字符串ABCABCABC将会被压缩为[3|ABC],现在小Q的同学收到了小Q发送过来的字符串,你能帮助他进行解压缩么?输入例子1:“HG[3|B[2|CA]]F”输出例子1:“HGBCACABCACABCACAF”例子说明1:HG[3|B[2|CA]]F−>HG[3|BCACA]F−>HGBCAC

2022-03-25 16:23:06 439

原创 Leetcode 387. 字符串中的第一个唯一字符

387. 字符串中的第一个唯一字符给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。示例 1:输入: s = “leetcode”输出: 0示例 2:输入: s = “loveleetcode”输出: 2示例 3:输入: s = “aabb”输出: -1思路:使用一个二维数组,记录每个字母出现的次数以及最后一次出现的索引。遍历字符串。将二维数组中出现为1且出现的位置最靠前的返回。代码如下:class Solution {publi

2022-03-24 01:31:49 1240

原创 Leetcode39. 组合总和 40. 组合总和 II

39. 组合总和给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。示例 1:输入:candidates = [2,3,6,7], targ

2022-03-22 10:34:05 76

原创 Leetcode 62. 不同路径 63. 不同路径 II

62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向下 -> 向下向下 -> 向下 -> 向右向下 -> 向右 -&

2022-03-21 20:09:25 901

原创 Leetcode 3. 无重复字符的最长子串

3. 无重复字符的最长子串给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度

2022-03-21 13:51:03 66

原创 Leetcode 13. 罗马数字转整数

13. 罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX +

2022-03-21 11:44:02 97

原创 Leetcode 811. 子域名访问计数

811. 子域名访问计数网站域名 “discuss.leetcode.com” 由多个子域名组成。顶级域名为 “com” ,二级域名为 “leetcode.com” ,最低一级为 “discuss.leetcode.com” 。当访问域名 “discuss.leetcode.com” 时,同时也会隐式访问其父域名 “leetcode.com” 以及 “com” 。计数配对域名 是遵循 “rep d1.d2.d3” 或 “rep d1.d2” 格式的一个域名表示,其中 rep 表示访问域名的次数,d1.d

2022-03-21 11:04:40 322

原创 Leetcode 290. 单词规律 205. 同构字符串

290. 单词规律 205. 同构字符串给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。示例1:输入: pattern = “abba”, str = “dog cat cat dog”输出: true示例 2:输入:pattern = “abba”, str = “dog cat cat fish”输出: false示例 3:输入

2022-03-21 10:07:50 90

原创 美团2021校招笔试-编程题(通用编程试题,第1场)[编程题]小美的外卖节省钱计划

小美的外卖节省钱计划2020年的618不再仅仅是购物节啦,同时也是美团外卖节,小美早早就准备好了各种满减代金券,为了最大程度的“省钱”,当然是选择把这些代金券都用光啦! 这些代金券都有一个使用门槛,即满多少元的订单才可以使用。如果使用一个二元组<x,y>表示一张代金券,即需要满x元才能优惠y元,那么需要注意的是,并不是所有代金券的x都是大于等于y的,良心美团也会推出一些x<y的代金券。如果x<y,例如x=1,y=2,则购买1元商品的情况下无需付款,不会退款给用户。请问小美

2022-03-20 23:34:50 891

原创 美团2021秋季校园招聘第一题 小美的用户名

小美的用户名小美是美团的前端工程师,为了防止系统被恶意攻击,小美必须要在用户输入用户名之前做一个合法性检查,一个合法的用户名必须满足以下几个要求:用户名的首字符必须是大写或者小写字母。用户名只能包含大小写字母,数字。用户名需要包含至少一个字母和一个数字。如果用户名合法,请输出 “Accept”,反之输出 “Wrong”。格式:输入:输入第一行包含一个正整数 T,表示需要检验的用户名数量。接下来有 T 行,每行一个字符串 s,表示输入的用户名。输出:对于每一个输入的用户名 s,请输出一

2022-03-20 06:19:28 209

原创 Leetcode 202. 快乐数

202. 快乐数编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是,则返回 false 。示例 1:输入:n = 19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 =

2022-03-20 05:06:29 91

原创 Leetcode 350. 两个数组的交集 II

350. 两个数组的交集 II给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]思路:使用哈希表,先将第一个数组的数据及其出现次数进

2022-03-19 07:02:36 691

原创 Leetcode 219. 存在重复元素 II

219. 存在重复元素 II给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。示例 1:输入:nums = [1,2,3,1], k = 3输出:true示例 2:输入:nums = [1,0,1,1], k = 1输出:true示例 3:输入:nums = [1,2,3,1,2,3], k = 2输出

2022-03-19 04:50:35 400

原创 Leetcode 217. 存在重复元素

217. 存在重复元素给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。示例 1:输入:nums = [1,2,3,1]输出:true示例 2:输入:nums = [1,2,3,4]输出:false示例 3:输入:nums = [1,1,1,3,3,4,3,2,4,2]输出:true方法一:排序后比较相邻数据方法二:哈希class Solution {public: bool contain

2022-03-19 04:35:03 142

原创 Leetcode 229. 求众数 II

229. 求众数 II给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。示例 1:输入:[3,2,3]输出:[3]示例 2:输入:nums = [1]输出:[1]示例 3:输入:[1,1,1,3,3,2,2,2]输出:[1,2]思路:使用哈希表存储数据,将大于[n/3]的输出。代码如下:class Solution {public: vector<int> majorityElement(vector<int>&am

2022-03-19 04:23:17 352

原创 Leetcode 154. 寻找旋转排序数组中的最小值 II

154. 寻找旋转排序数组中的最小值 II已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,4,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]若旋转 7 次,则可以得到 [0,1,4,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]] 。

2022-03-19 01:44:38 146

原创 Leetcode 977. 有序数组的平方

977. 有序数组的平方给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]进阶:请你设计时间复杂度为 O(n) 的算法解决本问题思路:找到有

2022-03-18 21:36:39 65

原创 Leetcode 409. 最长回文串

409. 最长回文串给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。在构造过程中,请注意 区分大小写 。比如 “Aa” 不能当做一个回文字符串。示例 1:输入:s = “abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。示例 2:输入:s = “a”输入:1示例 3:输入:s = “bb”输入: 2class Solution {public: int longestPalindr

2022-03-18 05:41:39 132

原创 Leetcode 832. 翻转图像

832. 翻转图像给定一个 n x n 的二进制矩阵 image ,先 水平 翻转图像,然后 反转 图像并返回 结果 。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1,1,0] 的结果是 [0,1,1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0,1,1] 的结果是 [1,0,0]。示例 1:输入:image = [[1,1,0],[1,0,1],[0,0,0]]输出:[[1,0,0],[0,1,0],[1,1,1]]解

2022-03-18 05:22:35 200

原创 Leetcode 344. 反转字符串

344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]class Solution {public:

2022-03-18 05:13:46 78

原创 Leetcode 455. 分发饼干

455. 分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例 1:输入: g = [1,2,3], s = [1,1]输出: 1解释:你有三个孩子和两块小饼干,3个孩子

2022-03-18 05:10:42 58

原创 Leetcode 349. 两个数组的交集

349. 两个数组的交集给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]解释:[4,9] 也是可通过的思路:先将两个数组重新排序,然后分别从头开始比较,谁值更大谁的指针就右移。一样大就同时右移。移动后在该

2022-03-18 03:57:05 473

原创 Leetcode 283. 移动零

283. 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]思路:使用双指针,都从左侧开始。右指针不断向右移动,当遇到非零的数字时,与左指针交换,同时左指针加一。代码如下:class Solution {public: void m

2022-03-18 03:47:41 48

原创 Leetcode 75. 颜色分类

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库的sort函数的情况下解决这个问题。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]进阶:你可以不使用代码库中的排序函数来解决这道题吗?你能想出一个仅使用常数空间的一趟扫描算

2022-03-18 03:09:31 57

原创 Leetcode 680. 验证回文字符串 Ⅱ

680. 验证回文字符串 Ⅱ给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: s = “aba”输出: true示例 2:输入: s = “abca”输出: true解释: 你可以删除c字符。示例 3:输入: s = “abc”输出: false思路:使用双指针,左端等于右端时,同时往里移动。允许删除一个相当于左端或右端可跳过一次。所以设置两个检查变量,当左右两端不相等时,分别只移动一个,同时改变检测变量。若两个检查变量有一个不超过一即可。

2022-03-18 02:32:15 178

原创 Leetcode 633. 平方数之和

633. 平方数之和给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。示例 1:输入:c = 5输出:true解释:1 * 1 + 2 * 2 = 5示例 2:输入:c = 3输出:false使用双指针。本题需防止越界,因为aa+bb可能超出整型变量范围。所以,不使用a×a+b×b与c比较,而是比较aa与c-bb的值。代码如下:class Solution {public: bool judgeSquareSum(int c)

2022-03-18 02:13:01 54

原创 Leetcode 16. 最接近的三数之和

16. 最接近的三数之和给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。示例 1:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。示例 2:输入:nums = [0,0,0], target = 1输出:0整体思路:与第15题类似,先将数据重

2022-03-17 22:32:47 151

原创 Leetcode15 三数之和

Leetcode15 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]注:nums.size是无符号整型,所有当size为1时

2022-03-17 17:44:26 533

原创 Leetcode141 环形链表

Leetcode141 环形链表题目描述给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true

2022-03-17 13:46:11 48

原创 Leetcode 881. 救生艇

Leetcode 881. 救生艇题目描述给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。返回 承载所有人所需的最小船数 。示例 1:输入:people = [1,2], limit = 3输出:1解释:1 艘船载 (1, 2)示例 2:输入:people = [3,2,2,1], limit = 3输出:3解释:3 艘船分别载 (1, 2)

2022-03-17 13:25:14 748

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除