
LeetCode + nowcoder
题解
猿灰灰
It's now!
始终相信一句话:知道的越多,不知道的越多!!!
即使再小的帆也能远航!
展开
-
LeetCode(每日练习)-回文子串系列
此文章用于记录有关回文子串的的题目5. 最长回文子串剑指 Offer II 027 回文链表234. 回文链表剑指 Offer II 018 有效的回文125. 验证回文串5. 最长回文子串【题目描述】给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"提示:1 <= s.length <= 1000s 仅由数字.原创 2022-04-17 22:54:47 · 26701 阅读 · 0 评论 -
LeetCode(每日练习)-440. 字典序的第K小数字、129. 求根节点到叶节点数字之和、380. O(1) 时间插入、删除和获取随机元素
440. 字典序的第K小数字【题目描述】给定整数 n 和 k,返回 [1, n] 中字典序第 k 小的数字。示例 1:输入: n = 13, k = 2输出: 10解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。示例 2:输入: n = 1, k = 1输出: 1提示:1 <= k <= n <= 10^9【解题思路】字典序简而言之,就是根据数字的前缀进行排序,比如原创 2022-04-13 12:32:56 · 660 阅读 · 0 评论 -
LeetCode(每日练习)-402. 移掉 K 位数字、316. 去除重复字母、1081. 不同字符的最小子序列、321. 拼接最大数
402. 移掉 K 位数字【题目描述】给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。示例 1 :输入:num = "1432219", k = 3输出:"1219"解释:移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。示例 2 :输入:num = "10200", k = 1输出:"200"解释:移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零示例原创 2022-04-12 09:04:01 · 474 阅读 · 2 评论 -
LeetCode(每日一题)-1391. 检查网格中是否存在有效路径
LeetCode(每日一题)-1391. 检查网格中是否存在有效路径【题目描述】给你一个 m x n 的网格 grid。网格里的每个单元都代表一条街道。grid[i][j] 的街道可以是:1 表示连接左单元格和右单元格的街道。2 表示连接上单元格和下单元格的街道。3 表示连接左单元格和下单元格的街道。4表示连接右单元格和下单元格的街道。5 表示连接左单元格和上单元格的街道。6 表示连接右单元格和上单元格的街道。你最开始从左上角的单元格 (0,0) 开始出发,网格中的「有效路径」是指从左原创 2022-04-04 12:07:51 · 471 阅读 · 0 评论 -
LeetCode(每日一题)-全排列系列
LeetCode(每日一题)-全排列系列说明此文章是对于力扣的全排列题目的一个总结其中序号46. 全排列、47. 全排列 II、剑指 Offer II 084. 含有重复元素集合的全排列、剑指 Offer II 083. 没有重复元素集合【题目描述】给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]原创 2022-03-31 15:59:02 · 690 阅读 · 0 评论 -
牛客-链表中环的入口节点(Java)
链表中环的入口节点【题目描述】对于一个给定的链表,返回环的入口节点,如果没有环,返回null【思路】首先判断有没有环我们可以设置两个指针求解此问题:一个快指针fast,每次向前走两个节点,一个慢指针low,每次向前走一个节点;我们首先需要知道一个结论:这两个指针一快一慢向前走,若链表有环,则两个指针一定会相遇;do{ fast = fast.next; if(fast == null) return null; fast =原创 2021-05-10 11:11:55 · 237 阅读 · 0 评论 -
牛客-求二叉树的层序遍历(Java)
求二叉树的层序遍历【题目描述】给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)例如:给定的二叉树是{3,9,20,#,#,15,7},该二叉树层序遍历的结果是[[3],[9,20],[15,7]]分析:一看到二叉树的层序遍历就想到了bfs算法,其实这题就是一个简单的bfsAC代码(核心代码模式):import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNo原创 2021-04-17 08:44:13 · 352 阅读 · 0 评论 -
牛客-螺旋矩阵(Java)
螺旋矩阵题目:给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素题解:import java.util.ArrayList;public class Solution { public ArrayList<Integer> spiralOrder(int[][] matrix) { int m,n; ArrayList<Integer> list = new ArrayList<>();原创 2021-03-29 20:46:29 · 200 阅读 · 0 评论 -
2020年蓝桥杯C/C++省赛B组 F:成绩统计
F:成绩统计【问题描述】【输入格式】【输出格式】【样例输入】【样例输出】分析:直接计算,没有说明难点代码实现:#include<iostream>#include<algorithm>#include <stdio.h>#include<stdlib.h>using namespace std;int main(){ int n; int sum1 = 0; int sum2 = 0; int a; cin &g原创 2021-04-14 00:25:21 · 377 阅读 · 0 评论 -
2020年蓝桥杯C/C++省赛B组 D:跑步锻炼
D:跑步锻炼【题目描述】分析:由于是填空题,暴力是最好的办法,在暴力的同时要注意小细节,比如周一和月初是同一天,是否闰年,2020年十月只算1天 等等代码实现:#include<iostream>#include<algorithm>#include <stdio.h>#include<stdlib.h>using namespace std;int month[12] = { 31, 28, 31, 30, 31, 30, 31, 31原创 2021-04-14 00:10:31 · 378 阅读 · 0 评论 -
2020年蓝桥杯C/C++省赛B组 C:蛇形填数
C:蛇形填数【问题描述】分析:由题意得,数字增大的放向是右规律的分别是向右,向左下,向下,向右上一个循环。所以我们可以通过循环填好一个数组,由于是填空题,我只需要填好大于题目要求的数组,然后输出a[20][20]便是答案代码实现#include<iostream>#include<algorithm>#include <stdio.h>#include<stdlib.h>using namespace std;int main(){原创 2021-04-13 09:30:14 · 174 阅读 · 0 评论 -
2020年蓝桥杯C/C++省赛B组 B:既约分数
B:既约分数【问题描述】如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。例如,3/4 , 2/5, 1/8 , 1/7 都是既约分数。请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数(包括 1 和 2020)?分析:由于是填空题,只需要暴力两层for循环遍历就行代码实现:#include<iostream>#include<algorithm>#include <stdio.h>#include<stdlib原创 2021-04-13 00:02:58 · 458 阅读 · 0 评论 -
2020年蓝桥杯C/C++省赛B组 A:门牌制作
A:门牌制作【问题描述】小蓝要为一条街的住户制作门牌号。这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、 0、 1、 7,即需要 1 个字符 0, 2 个字符 1, 1 个字符 7。请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?分析:只需要对1~2020的每个数进行遍历,看看每个数分别有多少个2然后相加即可。由于是填空题,原创 2021-04-12 23:49:24 · 289 阅读 · 0 评论 -
LeetCode(每日一题)-101.对称二叉树
【题目描述】给定一个二叉树,检查它是否是镜像对称的你可以运用递归和迭代两种方法解决这个问题吗?解题思路:可以用BFS的思路去解此题,只不过几点注意点:如果子节点为空也存入队列中入栈的两个节点的位置要是对此的图解:AC代码(递归): public boolean isSymmetric(TreeNode root) { if (root == null) return true; return CMP(root.原创 2021-04-21 09:39:07 · 125 阅读 · 0 评论 -
LeetCode(每日一题)-27. 移除元素
【题目描述】【解题思路】初看此题,我已经就是把要求元素删除,返回数组中的元素个数,所以我一开始用steam API解题steam解题代码:class Solution { public int removeElement(int[] nums, int val) { //获取steam流 IntStream stream = Arrays.stream(nums); //过滤返回数组元素个数 int count = (int) s原创 2021-04-19 10:40:13 · 124 阅读 · 0 评论 -
LeetCode(每日一题)-921. 使括号有效的最少添加
【题目描述】给定一个由 ‘(’ 和 ‘)’ 括号组成的字符串 S,我们需要添加最少的括号( ‘(’ 或是 ‘)’,可以在任何位置),以使得到的括号字符串有效。从形式上讲,只有满足下面几点之一,括号字符串才是有效的:它是一个空字符串,或者它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者它可以被写作 (A),其中 A 是有效字符串。给定一个括号字符串,返回为使结果字符串有效而必须添加的最少括号数。示例 1:输入:"())"输出:1示例 2:输入:"(原创 2021-04-18 17:02:55 · 303 阅读 · 0 评论