![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode刷题记录
鬼 | 刀
Nothing is impossible.
展开
-
Leetcode——237.删除链表中的节点——题解+代码实现(跟常规的思路有点区别,因为没有其前一个结点)
一、题目请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 --head =[4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -&g...原创 2019-06-03 20:03:10 · 267 阅读 · 0 评论 -
Leetcode——1029.两地调度——题解+代码实现(使用multimap(可以重复key)、pair(固定key-value))
一、题目公司计划面试2N人。第i人飞往A市的费用为costs[i][0],飞往B市的费用为costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有N人抵达。示例:输入:[[10,20],[30,200],[400,50],[30,20]]输出:110解释:第一个人去 A 市,费用为 10。第二个人去 A 市,费用为 30...原创 2019-05-28 00:17:47 · 544 阅读 · 0 评论 -
记录2019.5.30心情
六月份要去实习了,但是还是想好好准备秋招,心情很复杂,没办法,只能尽力掌握更多、应对秋招,想尽一切办法!!!!!天气:晴朗时间:13:41加油,干好实习,备战秋招!!!!!...原创 2019-05-30 13:42:31 · 163 阅读 · 0 评论 -
Leetcode——893.特殊等价字符串组——题解+代码实现
一、题目你将得到一个字符串数组A。如果经过任意次数的移动,S == T,那么两个字符串S和T是特殊等价的。一次移动包括选择两个索引i和j,且i % 2 == j % 2,并且交换S[j]和S [i]。现在规定,A中的特殊等价字符串组是A的非空子集S,这样不在S中的任何字符串与S中的任何字符串都不是特殊等价的。返回A中特殊等价...原创 2019-05-13 17:03:22 · 144 阅读 · 0 评论 -
Leetcode——566.重塑矩阵——题解+代码实现
一、题目在MATLAB中,有一个非常有用的函数reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:...原创 2019-05-13 01:34:00 · 363 阅读 · 0 评论 -
Leetcode——598.范围求和||——题解+代码实现
一、题目给定一个初始元素全部为0,大小为 m*n 的矩阵M以及在M上的一系列更新操作。操作用二维数组表示,其中的每个操作用一个含有两个正整数a和b的数组表示,含义是将所有符合0 <= i < a以及0 <= j < b的元素M[i][j]的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。示例 1:...原创 2019-05-25 23:25:09 · 299 阅读 · 8 评论 -
Leetcode——455.分发饼干——题解+代码实现
一、题目假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj。如果 sj>= gi,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口...原创 2019-05-25 22:39:41 · 976 阅读 · 0 评论 -
Leetcode——506.相对名次——题解+代码实现(使用map、vector)
一、题目给出N名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”("Gold Medal", "Silver Medal", "Bronze Medal")。(注:分数越高的选手,排名越靠前。)示例 1:输入: [5, 4, 3, 2, 1]输出: ["Gold Medal", "Silver Medal"...原创 2019-05-25 22:05:28 · 388 阅读 · 0 评论 -
Leetcode——1009.十进制整数的反码——题解+代码实现
一、题目每个非负整数N都有其二进制表示。例如,5可以被表示为二进制"101",11可以用二进制"1011"表示,依此类推。注意,除N = 0外,任何二进制表示中都不含前导零。二进制的反码表示是将每个1改为0且每个0变为1。例如,二进制数"101"的二进制反码为"010"。给定十进制数N,返回其二进制表示的反码所对应的十进制整数。示例 1:...原创 2019-05-25 20:38:51 · 497 阅读 · 1 评论 -
Leetcode——883.三维形体投影面积——题解+代码实现
一、题目在N*N的网格中,我们放置了一些与 x,y,z 三轴对齐的1 * 1 * 1立方体。每个值v = grid[i][j]表示v个正方体叠放在单元格(i, j)上。现在,我们查看这些立方体在 xy、yz和 zx平面上的投影。投影就像影子,将三维形体映射到一个二维平面上。在这里,从顶部、前面和侧面看立方体时,我们会看到“影子”。返回所有三个投影...原创 2019-05-11 22:58:14 · 262 阅读 · 0 评论 -
Leetcode——762.二进制表示中的质数个计算置位——题解+代码实现
一、题目给定两个整数L和R,找到闭区间[L, R]范围内,计算置位位数为质数的整数个数。(注意,计算置位代表二进制表示中1的个数。例如21的二进制表示10101有 3 个计算置位。还有,1 不是质数。)示例 1:输入: L = 6, R = 10输出: 4解释:6 -> 110 (2 个计算置位,2 是质数)7 -> 111 (3 个计算置...原创 2019-05-11 22:20:46 · 212 阅读 · 0 评论 -
随时分享发布代码的工具——ubuntu Pastebin
一、ubuntu Pastebin网站网站链接:ubuntu Pastebin 网站界面操作步骤 先填poster(随便填写) 然后选择Syntax,这个是选择你所要放上去代码是那种代码(例如C++、C、python、java等),几乎包含了现在所有的代码 选择Expiration(有效期),自己选择 最后将代码粘贴在Content中,然后点击Paste!即生成...原创 2019-05-21 15:29:39 · 15465 阅读 · 2 评论 -
刷题/笔试技巧之——C++常用模板
每次阅读大神的代码的时候,除了膜拜,还发现了大神都喜欢用自己的模板。比如提前定义好变量、宏定义替换循环语句等。这在笔试的时候能大大节省时间,所以参考了一些大神的代码,总结了一个还比较通用的模板贴出来与大家分享。#include <bits/stdc++.h> //万能头文件,仅限笔试/刷题用,正常学习不建议用(例如vs都不能使用)using namespace...原创 2019-05-21 14:36:32 · 1356 阅读 · 0 评论 -
刷题/笔试技巧之——C++万能头文件
1、#include<bits/stdc++.h>的使用#include<bits/stdc++.h>包含了目前c++所包含的所有头文件2、对比转化#include <iostream>#include <cstdio>#include <fstream>#include <algorithm>#inc...原创 2019-05-21 14:31:50 · 2911 阅读 · 0 评论 -
Leetcode刷题常用的算法和STL容器、函数——C++代码实现
参考博客1:常用算法C++实现及STL常用API(留着刷题用) - 侵删 参考博客2: 算法竞赛中常用的C++ STL原创 2019-05-21 13:32:24 · 5056 阅读 · 0 评论 -
Leetcode——67.二进制求和——题解+代码实现
一、题目给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"二、题解思路题解思路:先根据两个字符串a和b的长度,将短的字符串在其前面插入0使得长度和长的字符串长度一...原创 2019-05-28 00:23:15 · 300 阅读 · 0 评论 -
Leetcode——263.丑数——题解+代码实现
一、题目编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数2, 3, 5的正整数。示例 1:输入: 6输出: true解释: 6 = 2 ×3示例 2:输入: 8输出: true解释: 8 = 2 × 2 ×2示例3:输入: 14输出: false 解释: 14 不是丑数,因为它包含了另外一个质因数7。说明:1是丑数。...原创 2019-06-05 17:03:37 · 545 阅读 · 0 评论 -
Leetcode——217.存在重复元素——题解+代码实现(有时候使用容器(例如map、set等)反而没有一般方法好)
一、题目给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true二、题解思路题解思...原创 2019-05-28 19:03:06 · 358 阅读 · 0 评论 -
Leetcode——206.反转链表——题解+代码实现(递归+迭代版)
一、题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?二、题解思路题解思路1(迭代实现) 在遍历列表时,将当前节点(Node)的 next 指针改为指向前一个元素(No...原创 2019-06-03 20:00:24 · 1164 阅读 · 0 评论 -
Leetcode——342.4的幂——题解+代码实现(递归和循环实现)
一、题目给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4的幂次方。示例 1:输入: 16输出: true示例 2:输入: 5输出: false进阶:你能不使用循环或者递归来完成本题吗?二、题解思路题解思路1(递归):根据给定的整数,先判断其是否为0、1,若不是,则进行求余和除4取整判断,递归操作。 题解思路2(循环):先判断n...原创 2019-06-02 18:46:36 · 230 阅读 · 0 评论 -
Leetcode——231.2的幂——题解+代码实现(尝试递归、循环、找规律3种方法实现)
一、题目给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例1:输入: 1输出: true解释: 20= 1示例 2:输入: 16输出: true解释: 24= 16示例 3:输入: 218输出: false二、题解思路题解思路1:2的幂是2、4、8、16、32、64、128...(二进制是:0010、0100、1000、0001...原创 2019-06-02 18:42:43 · 193 阅读 · 0 评论 -
Leetcode——696.计数二进制子串——三种题解+代码实现(擅于挖掘巧妙的题解思路)
一、题目给定一个字符串s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们...原创 2019-06-02 18:36:43 · 418 阅读 · 0 评论 -
Leetcode——58.最后一个单词的长度——2种题解+代码实现(反向考虑、string的erase操作)
一、题目给定一个仅包含大小写字母和空格' '的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5二、题解思路题解思路1:遍历字符串,如果字符不是空格,就将字符叠加到中间变量temp上,遇到空格,则将上一次叠加后的单词存到vector中...原创 2019-06-02 18:23:14 · 186 阅读 · 0 评论 -
Leetcode——844.比较含退格的字符串——题解+代码实现(使用vector的push_back和pop_back)
一、题目给定S和T两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。#代表退格字符。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。示例 3...原创 2019-06-02 18:17:07 · 439 阅读 · 0 评论 -
Leetcode——345.反转字符串中的元音字母——题解+代码实现(双指针思想、find函数使用)
一、题目编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"说明:元音字母不包含字母"y"。二、题解思路题解思路:双指针,即同时开始(正方向、反方向),正方向遍历,反方向遍历,碰到元音则交换位置,否则继续往下查找。三、代码实...原创 2019-06-02 18:09:36 · 335 阅读 · 0 评论 -
Leetcode——896.单调数列——题解+代码实现
一、题目如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有i <= j,A[i] <= A[j],那么数组A是单调递增的。 如果对于所有i <= j,A[i]> = A[j],那么数组A是单调递减的。当给定的数组A是单调数组时返回true,否则返回false。示例 1:输入:[1,2,2,3]输出:true示...原创 2019-05-29 19:57:13 · 289 阅读 · 0 评论 -
Leetcode——551.学生出勤记录|——题解+代码实现
一、题目给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:'A': Absent,缺勤 'L': Late,迟到 'P': Present,到场如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤记录判断他是否会被奖赏。示例 1:输入: "PPALLP"输出: Tru...原创 2019-05-29 19:50:49 · 303 阅读 · 0 评论 -
Leetcode——661.图片平滑器——题解+代码实现
一、题目包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度(向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。示例 1:输入:[[1,1,1], [1,0,1], [1,1,1]]输出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]解释:...原创 2019-05-29 19:45:46 · 345 阅读 · 0 评论 -
Leetcode——1047.删除字符串中的所有相邻重复项——题解+代码实现(使用string中的删除操作:erase)
一、题目给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项...原创 2019-05-29 19:42:03 · 1806 阅读 · 0 评论 -
Leetcode——409.最长回文串——题解+代码实现(使用map)
一、题目给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。二、题解思路题解思路:回文数:从左往右...原创 2019-05-29 19:35:51 · 227 阅读 · 0 评论 -
Leetcode——383.赎金信——题解+代码实现(擅用map(其下的first、second)和使用auto进行for循环(新增功能))
一、题目给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。)注意:你可以假设两个字符串均只含有小写字母。canConstruct(...原创 2019-05-29 08:29:05 · 604 阅读 · 0 评论 -
Leetcode——公平的糖果交换——题解+代码实现(擅用算法中的find函数对vector进行处理)
一、题目爱丽丝和鲍勃有不同大小的糖果棒:A[i]是爱丽丝拥有的第i块糖的大小,B[j]是鲍勃拥有的第j块糖的大小。因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组ans,其中ans[0]是爱丽丝必须交换的糖果棒的大小,ans[1]是 Bob 必须交换的糖果棒的大小。...原创 2019-05-29 08:25:18 · 142 阅读 · 0 评论 -
Leetcode——917.仅仅反转字符串——题解+代码实现(使用string中的insert注意越界)
一、题目给定一个字符串S,返回“反转后的”字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。示例 1:输入:"ab-cd"输出:"dc-ba"示例 2:输入:"a-bC-dEf-ghIj"输出:"j-Ih-gfE-dCba"示例 3:输入:"Test1ng-Leet=code-Q!"输出:"Qedo1ct-eeLg=ntse-...原创 2019-05-29 08:21:04 · 280 阅读 · 0 评论 -
Leetcode——264.丑数 ||——题解+代码实现(使用三指针进行求解)
一、题目(中等)编写一个程序,找出第n个丑数。丑数就是只包含质因数2, 3, 5的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1是丑数。 n不超过1690。二、题解思路题解思路1:在Leetcode——263.丑数的思想下进行循环,找到第n个丑数...原创 2019-06-05 20:38:36 · 497 阅读 · 0 评论 -
Leetcode——1025.除数博弈——题解+代码实现
一、题目爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字N。在每个玩家的回合,玩家需要执行以下操作:选出任一x,满足0 < x < N且N % x == 0。 用N - x替换黑板上的数字N。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回True,否则返回false。假设两个玩家都以...原创 2019-05-11 17:00:02 · 445 阅读 · 0 评论 -
Leetcode——860.柠檬水找零——题解—+代码实现
一、题目在柠檬水摊上,每一杯柠檬水的售价为5美元。顾客排队购买你的产品,(按账单bills支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付5美元、10美元或20美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付5美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回true,否则返回false。示例 1...原创 2019-05-24 17:36:53 · 582 阅读 · 0 评论 -
Leetcode——682.棒球比赛——题解+代码实现
一、题目你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2."+"(一轮的得分):表示本轮获得的得分是前两轮有效回合得分的总和。3."D"(一轮的得分):表示本轮获得的得分是前一轮有效回合得分的两倍。4."C"(一个操作,这不是一个回合的分数):表示您获得的最后一个有效回合的分数是无效的...原创 2019-05-07 14:38:57 · 422 阅读 · 0 评论 -
Leetcode——748.最短完整词——题解+代码实现
一、题目如果单词列表(words)中的一个单词包含牌照(licensePlate)中所有的字母,那么我们称之为完整词。在所有完整词中,最短的单词我们称之为最短完整词。单词在匹配牌照中的字母时不区分大小写,比如牌照中的"P"依然可以匹配单词中的"p"字母。我们保证一定存在一个最短完整词。当有多个单词都符合最短完整词的匹配条件时取单词列表中最靠前的一个。牌照中可能包含多个相同的...原创 2019-05-19 18:08:07 · 246 阅读 · 0 评论 -
Leetcode——447.回旋镖的数量——题解+代码实现
一、题目给定平面上n对不同的点,“回旋镖” 是由点表示的元组(i, j, k),其中i和j之间的距离和i和k之间的距离相等(需要考虑元组的顺序)。找到所有回旋镖的数量。你可以假设n最大为500,所有点的坐标在闭区间[-10000, 10000]中。示例:输入:[[0,0],[1,0],[2,0]]输出:2解释:两个回旋镖为 [[1,...原创 2019-05-19 18:02:26 · 394 阅读 · 0 评论 -
Leetcode——202.快乐数——题解+代码实现
一、题目编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例:输入: 19输出: true解释: 12 + 92 = 8282 + 22 = 6862 + 82 = 10012 +...原创 2019-05-19 17:59:10 · 592 阅读 · 0 评论