![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
毕业_设计
这个作者很懒,什么都没留下…
展开
-
(每日一练c++)CC121 两数相除
描述在不使用乘法运算符,除法运算符和取余运算符的情况下对两个数进行相除操作示例1输入:-1,1返回值:-1class Solution {public: int divide(int dividend, int divisor) { long long a = abs((long long)dividend); long long b = abs((long long)divisor); int finalcoun翻译 2022-05-01 22:30:42 · 132 阅读 · 0 评论 -
(每日一练c++)CC120 索引所有子串
描述给出一个字符串S和一组单词L,L中单词的长度都相等,找出S中的符合以下要求的子串在S中的起始位置索引:子串为L中所有单词串联在一起(单词的顺序随意),L中的每个单词只出现一次,中间不能有其他的字符。例如:给定S="nowcoderacodnowert",L为["now", "cod"],返回的索引应该是[0,9].(不用关心给出索引的顺序)class Solution { vector<int> d;public: vector<int> fi翻译 2022-05-01 22:31:06 · 116 阅读 · 0 评论 -
(每日一练c++)CC119 下一个排列
描述实现函数next permutation(下一个排列):将排列中的数字重新排列成字典序中的下一个更大的排列。将排列中的数字重新排列成字典序中的下一个更大的排列。如果不存在这样的排列,则将其排列为字典序最小的排列(升序排列)需要使用原地算法来解决这个问题,不能申请额外的内存空间下面有机组样例,左边是输入的数据,右边是输出的答案1,2,3→1,3,23,2,1→1,2,31,1,5→1,5,1class Solution {public: void nextPermu翻译 2022-05-04 07:37:54 · 141 阅读 · 2 评论 -
(每日一练c++)CC118 最长的括号子串
描述给出一个长度为 n的,仅包含字符 '(' 和 ')' 的字符串,计算最长的格式正确的括号子串的长度。例1: 对于字符串 "(()" 来说,最长的格式正确的子串是 "()" ,长度为 2 .例2:对于字符串 ")()())" , 来说, 最长的格式正确的子串是 "()()" ,长度为 4 .字符串长度:0≤n≤1×1050 \le n \le 1\times10^50≤n≤1×105要求时间复杂度 O(n)O(n)O(n) ,空间复杂度 O(n)O(n)O(n).示例.翻译 2022-05-04 07:38:00 · 280 阅读 · 2 评论 -
(每日一练c++)CC116 求目标值的区间
描述给出一个有序数组,请在数组中找出目标值的起始位置和结束位置你的算法的时间复杂度应该在O(log n)之内如果数组中不存在目标,返回[-1, -1].例如:给出的数组是[50, 70, 70, 80, 80, 100],目标值是80,返回[3, 4].示例1输入:[50, 70, 70, 80, 80, 100],80返回值:[3,4]public class Solution { public int[] searchRange(int[]翻译 2022-05-08 10:43:37 · 120 阅读 · 2 评论 -
(每日一练c++)CC115 搜索插入位置
描述给出一个有序的数组和一个目标值,如果数组中存在该目标值,则返回该目标值的下标。如果数组中不存在该目标值,则返回如果将该目标值插入这个数组应该插入的位置的下标假设数组中没有重复项。下面给出几个样例:[10,30,50,60], 50 → 2[10,30,50,60], 20 → 1[10,30,50,60], 70 → 4[10,30,50,60], 0 → 0示例1输入:[10,30,50,60],50返回值:2class Solution {publi翻译 2022-05-14 00:32:03 · 58 阅读 · 2 评论 -
(每日一练c++)CC114 有效的数独
描述根据数独的规则Sudoku Puzzles - The Rules.判断给出的局面是不是一个符合规则的数独局面数独盘面可以被部分填写,空的位置用字符'.'.表示这是一个部分填写的符合规则的数独局面class Solution {public: bool isValidSudoku(vector<vector<char> > &board) { //记录已经出现的数,如3出现,则row[3]=1 int .翻译 2022-05-14 00:32:06 · 96 阅读 · 2 评论 -
(每日一练c++)CC113 数独
描述请编写一个程序,给数独中的剩余的空格填写上数字空格用字符'.'表示假设给定的数独只有唯一的解法这盘数独的解法是:红色表示填上的解示例1输入:[[.,.,9,7,4,8,.,.,.],[7,.,.,.,.,.,.,.,.],[.,2,.,1,.,9,.,.,.],[.,.,7,.,.,.,2,4,.],[.,6,4,.,1,.,5,9,.],[.,9,8,.,.,.,3,.,.],[.,.,.,8,.,3,.,2,.],[.,.,.,.,.,.,.,.,6],[.翻译 2022-05-18 00:01:56 · 155 阅读 · 2 评论 -
(每日一练c++)CC112 外观数列
描述外观数列的前几项如下:1, 11, 21, 1211, 111221, ...1读作“1个1”或1111读作“2个1“或者2121读作”1个2,1个1“或者1211给出一个整数n,请给出序列的第n项每一次读都是以前一次为基础注意:序列中的数字用字符串表示示例1输入:2返回值:"11"示例2输入:4返回值:"1211"//刚开始一直没懂题的意思,其实就是假设第一个是1,然后每一次前面生成的,n指读多少次。/翻译 2022-05-05 07:14:34 · 224 阅读 · 2 评论 -
(每日一练c++)CC111 组合之和
描述给出一组候选数C和一个目标数T,找出候选数中加起来和等于T的所有组合。C中的数字在组合中可以被无限次使用注意:题目中所有的数字(包括目标数T)都是正整数 你给出的组合中的数字 (a1,a2, … ,ak) 要按非递减排序(ie,a1≤a2≤ … ≤ak). 结解集中不能包含重复的组合例如:给定的候选数集是[20,30,60,70],目标数是7解集是:[70][20, 20, 30]class Solution { vector&l...翻译 2022-05-05 07:14:39 · 165 阅读 · 2 评论 -
CC110 加起来和为目标值的组合(二)
描述给出一组候选数 c 和一个目标数 t,找出候选数中起来和等于 t 的所有组合。c 中的每个数字在一个组合中只能使用一次。注意:1. 题目中所有的数字(包括目标数 t )都是正整数2. 组合中的数字 ( a1,a2,…,aka_1, a_2, … , a_ka1,a2,…,ak ) 要按非递减排序 ( a1≤a2≤…≤aka_1 \leq a_2 \leq … \leq a_ka1≤a2≤…≤ak ).3. 结果中不能包含重复的组合4. 组合之间的排序按照索引从.翻译 2022-05-06 06:48:18 · 153 阅读 · 4 评论 -
(每日一练c++)CC109 不在数组里的最小正整数
描述给出一个无序的整数型数组,求不在给定数组里的最小的正整数例如:给出的数组为[1,2,0] 返回3,给出的数组为[4,3,-1,-2,1] 返回2.你需要给出时间复杂度在O(n)之内并且空间复杂度为常数级的算法示例1输入:[1,2,0]返回值:3#define N 2000class Solution {public: void setBitMap(int val){ bitMap[val>>5] |= 1<翻译 2022-05-06 06:48:12 · 203 阅读 · 4 评论 -
(每日一练c++)CC108 收集雨水
描述给出n个数字,表示一个高程图,高程图中每一条的宽度为1,请计算下雨之后这个地形可以存储多少水例如给出[0,1,0,2,1,0,1,3,2,1,2,1],返回6.上面的高程图用数组[0,1,0,2,1,0,1,3,2,1,2,1]表示。在这种情况下,6个单位的雨水(蓝色部分)被存储。示例1输入:[0,1,0,2,1,0,1,3,2,1,2,1]返回值:6class Solution {public: int trap(int A[], int n)翻译 2022-05-16 21:05:25 · 206 阅读 · 2 评论 -
(每日一练c++)CC107 字符串乘法
描述给出两个用字符串表示的数字,将两个数字的乘积作为字符串返回。备注:数字可以无限大,且是非负数。示例1输入:"1","2"返回值:"2"class Solution {public: string mul(string num1,int m){//计算一个字符串和一个个位数的乘积 int n=num1.size(); int t=0; for(int i=n-1;i>=0;i--){翻译 2022-05-18 00:02:00 · 268 阅读 · 2 评论 -
(每日一练c++)CC106 通配符匹配
描述请实现支持'?'and'*'.的通配符模式匹配'?' 可以匹配任何单个字符。'*' 可以匹配任何字符序列(包括空序列)。返回两个字符串是否匹配函数声明为:bool isMatch(const char *s, const char *p)只有p字符串包含通配符下面给出一些样例:isMatch("aa","a") → falseisMatch("aa","aa") → trueisMatch("aaa","aa") → falseisMatch("aa", "*".翻译 2022-05-20 22:32:25 · 395 阅读 · 0 评论 -
(每日一练c++)CC105 跳跃游戏-ii
描述给出一个非负整数数组,你最初在数组第一个元素的位置数组中的元素代表你在这个位置可以跳跃的最大长度你的目标是用最少的跳跃次数来到达数组的最后一个元素的位置例如给出数组 A =[2,3,1,1,4]最少需要两次才能跳跃到数组最后一个元素的位置。(从数组下标为0的位置跳长度1到达下标1的位置,然后跳长度3到数组最后一个元素的位置)示例1输入:[2,3,1,1,4]返回值:2class Solution {public: int jump(i翻译 2022-05-20 22:32:34 · 124 阅读 · 0 评论 -
(每日一练c++)CC103 有重复项数字的全排列
描述给出一组可能包含重复项的数字,返回该组数字的所有排列。结果以字典序升序排列。数据范围: 0<n≤80 < n \le 8 0<n≤8 ,数组中的值满足 −1≤val≤5-1 \le val \le 5−1≤val≤5要求:空间复杂度 O(n!)O(n!)O(n!),时间复杂度 O(n!)O(n!)O(n!)示例1输入:[1,1,2]返回值:[[1,1,2],[1,2,1],[2,1,1]]示例2输入:[0,1]返回值:[[翻译 2022-05-21 01:41:55 · 597 阅读 · 2 评论 -
(每日一练c++)CC102 旋转图像
描述给出一个用二维矩阵表示的图像返回该图像顺时针旋转90度的结果扩展:你能使用原地算法解决这个问题么?class Solution {public: void rotate(vector<vector<int> > &matrix) { int n=matrix.size(); if(n<=1) return; for(int i=0;i<n/2;i++){原创 2022-05-21 01:42:04 · 103 阅读 · 2 评论 -
(每日一练c++)CC100 实现阶乘
描述请实现函数 pow(x, n).示例1输入:6.88023,3返回值:325.69333AC:class Solution {public: double pow(double x, int n) { if(x == 0 && n == 0) return 1; if(x == 0) return 0; if(n == 0) return 1; if(n < 0){翻译 2022-05-03 08:37:36 · 59 阅读 · 1 评论 -
(每日一练c++)CC99 n-皇后
描述N皇后问题是把N个皇后放在一个N×N棋盘上,使皇后之间不会互相攻击。给出一个整数n,返回n皇后问题的所有摆放方案例如:4皇后问题有两种摆放方案[".Q..", // 解法 1 "...Q", "Q...", "..Q."],["..Q.", // 解法 2 "Q...", "...Q", ".Q.."]]class Solution {public: //tmp[i]表示第i行的Q在哪一列 void findSol...翻译 2022-05-03 08:37:30 · 110 阅读 · 1 评论 -
(每日一练c++)CC98 n-皇后 ii
描述继续思考“n-queens”问题这次我们不是输出皇后的排列情况,而是输出n皇后问题一共有多少种解法注:n 皇后问题是在 n*n 棋盘上放置 n 个皇后, 并且使它们互相不在对方的攻击范围之内的摆放方法;注注:皇后的攻击范围是上、下、左、右、左上、左下、右下、右上共 8 个方向, 且不限距离。示例1输入:1返回值:1示例2输入:8返回值:92class Solution { int N=0,A[10]原创 2022-05-21 01:42:13 · 164 阅读 · 2 评论 -
(每日一练c++)CC95 跳跃游戏
描述给出一个非负整数数组,你最初在数组第一个元素的位置数组中的元素代表你在这个位置可以跳跃的最大长度判断你是否能到达数组最后一个元素的位置例如A =[2,3,1,1,4], 返回 true.A =[3,2,1,0,4], 返回 false.示例1输入:[2,3,1,1,4]返回值:true示例2输入:[3,2,1,0,4]返回值:falseclass Solution {public: bool canJump(i翻译 2022-05-07 07:17:43 · 147 阅读 · 2 评论 -
(每日一练c++)CC94 合并区间
描述给出一组区间,请合并所有重叠的区间。请保证合并后的区间按区间起点升序排列。数据范围:区间组数 0≤n≤2×1050 \le n \le 2 \times 10^50≤n≤2×105,区间内的值都满足 0≤val≤2×1050 \le val \le 2 \times 10^50≤val≤2×105要求:空间复杂度 O(n)O(n)O(n),时间复杂度 O(nlogn)O(nlogn)O(nlogn)进阶:空间复杂度 O(val)O(val)O(val),时间复杂度O(val)O.翻译 2022-05-23 21:04:58 · 174 阅读 · 2 评论 -
(每日一练c++)CC93 插入区间
CC93 插入区间描述给定一组不重叠的时间区间,在时间区间中插入一个新的时间区间(如果有重叠的话就合并区间)。这些时间区间初始是根据它们的开始时间排序的。示例1:给定时间区间[1,3],[6,9],在这两个时间区间中插入时间区间[2,5],并将它与原有的时间区间合并,变成[1,5],[6,9].示例2:给定时间区间[1,2],[3,5],[6,7],[8,10],[12,16],在这些时间区间中插入时间区间[4,9],并将它与原有的时间区间合并,变成[1,2],[3,10],[12,1原创 2022-05-23 21:05:09 · 163 阅读 · 2 评论 -
(每日一练c++)CC92 字符串最后一个单词的长度
描述给出一个只包含大小写字母和空格的字符串s,请返回字符串中最后一个单词的长度如果字符串中没有最后一个单词,则返回0注意:单词的定义是仅由非空格字符组成的字符序列。例如:s="Hello World",返回5。public int lengthOfLastWord(String s) { if(s==null||s.length()==0) return 0; int len = s.length(); int count = 0; for(int i = l.原创 2022-05-23 21:05:19 · 114 阅读 · 2 评论 -
(每日一练c++)CC91 螺旋矩阵-ii
描述给定一个整数n,将数字1到n2n^2n2按螺旋的顺序填入n×n的矩阵例如:给出的n=3,你应该返回如下矩阵:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]示例1输入:2返回值:[[1,2],[4,3]]class Solution {public: vector<vector<int> > generateMatrix(int n) { int count = 1;翻译 2022-05-24 00:12:56 · 455 阅读 · 2 评论 -
CC90 返回第k个排列
描述集合[1,2,3,…,n]一共有n!种不同的排列按字典序列出所有的排列并且给这些排列标上序号我们就会得到以下的序列(以n=3为例)"123" "132" "213" "231" "312" "321"现在给出n和k,请返回第k个排列注意:n在1到9之间示例1输入:3,1返回值:"123"暴力我交了一次 超时了 然后在网上发现这个办法 第一位有n种情况 每一种情况后面对应(n-1)!种可能 那么第一位选择整个数组中的哪一位翻译 2022-05-24 00:13:02 · 161 阅读 · 2 评论 -
(每日一练c++)CC89 转动链表
描述将给定的链表向右转动k个位置,k是非负数。例如:给定1->2->3->4->5->null , k=2,返回4->5->1->2->3->null。示例1输入:{1,2},1返回值:{2,1}public class Solution { public ListNode rotateRight(ListNode head, int k) { if(head==null||k==0原创 2022-05-24 00:13:08 · 218 阅读 · 2 评论 -
CC88 不同路径的数目(一)
描述一个机器人在m×n大小的地图的左上角(起点)。机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?备注:m和n小于等于100,并保证计算结果在int范围内数据范围:0<n,m≤1000 < n,m \le 1000<n,m≤100,保证计算结果在32位整型范围内要求:空间复杂度 O(nm)O(nm)O(nm),时间复杂度 O(nm)O(nm)O(nm)进阶:空间复杂度 O(1)O(1)O(1),时间复翻译 2022-05-17 19:32:47 · 539 阅读 · 2 评论 -
(每日一练c++)CC87 求路径 ii
描述给定一个m*n的地图,其中加入了一些障碍。每次只能向下或者向右走,问从左上角走到右下角有多少不同的路径?分别用0和1代表空区域和障碍例如下图表示有一个障碍在3*3的图中央。[ [0,0,0], [0,1,0], [0,0,0]]有2条不同的路径备注:m和n不超过100.示例1输入:[[0,1]]返回值:0示例2输入:[[1],[1]]返回值:0public class Solution翻译 2022-05-17 19:32:50 · 105 阅读 · 2 评论 -
(每日一练c++)CC86 带权值的最小路径和
描述给定一个由非负整数填充的m x n的二维数组,现在要从二维数组的左上角走到右下角,请找出路径上的所有数字之和最小的路径。注意:你每次只能向下或向右移动。示例1输入:[[1,2],[5,6],[1,1]]返回值:8public class Solution { public int minPathSum(int[][] grid) { if(grid==null||grid.length==0) return 0;原创 2022-05-24 00:13:29 · 109 阅读 · 4 评论 -
(每日一练c++)CC85 合并两个排序的链表
描述输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围: 0≤n≤10000 \le n \le 10000≤n≤1000,−1000≤节点值≤1000-1000 \le 节点值 \le 1000−1000≤节点值≤1000要求:空间复杂度 O(1)O(1)O(1),时间复杂度 O(n)O(n)O(n)如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所转载 2022-05-27 21:03:27 · 125 阅读 · 2 评论 -
CC84 二级制求和
描述给出两个用字符串表示的二进制数,返回他们的和(也用字符串表示)例如:a ="11"b ="1"返回"100".示例1输入:"11","1"返回值:"100"public class Solution { public String addBinary(String a, String b) { if(a==null) return b; if(b==null) return a; char翻译 2022-06-13 21:04:25 · 171 阅读 · 3 评论 -
(每日一练c++)CC83 是否是数字
描述判断给出的字符串是否是数字一些例子:"0"=>true" 0.1 "=>true"abc"=>false"1 b"=>false"3e10"=>trueclass Solution {public: bool isNumber(const char *s) { int n=strlen(s); if(s==NULL) return false; if(n==1&转载 2022-05-25 20:38:50 · 120 阅读 · 0 评论 -
(每日一练c++)CC82 加一
描述给出用数字数组表示的一个非负整数,请对该整数加1。示例1输入:[1]返回值:[2]示例2输入:[1,2,3]返回值:[1,2,4]#include<algorithm>class Solution {public: vector<int> plusOne(vector<int> &digits) { int add = 1;//进位值 vector<转载 2022-05-25 20:38:37 · 80 阅读 · 0 评论 -
(每日一练c++)CC81 文本对齐
描述给定一个单词数组和长度L,将该单词数组中文本两端对齐(左边和右边),使每一行都有L个字符。你要在每一行中尽可能多地填充单词。在必要时填充额外的空格' ',使每行正好有L个字符。单词之间的额外空格要尽可能均匀地分布。如果一行的空格数不能在单词之间平均分配,请在左边分配更多的空格对于最后一行文本,它应该左对齐,并且单词之间不插入额外的空格。例如,单词数组为:["This", "is", "an", "instance", "of", "code", "alignment."]L:16.转载 2022-05-25 20:38:27 · 359 阅读 · 0 评论 -
(每日一练c++)CC80 求平方根
描述实现函数 int sqrt(int x).计算并返回 x 的平方根(向下取整)数据范围: 0<=x<231−10 <= x < 2^{31}-10<=x<231−1要求:空间复杂度 O(1)O(1)O(1),时间复杂度 O(logx)O(logx)O(logx)示例1输入:2返回值:1示例2输入:2143195649返回值:46294// public static int sqrt(int转载 2022-05-25 20:38:19 · 129 阅读 · 0 评论 -
(每日一练c++)CC79 爬楼梯
描述你在爬楼梯,需要n步才能爬到楼梯顶部每次你只能向上爬1步或者2步。有多少种方法可以爬到楼梯顶部?示例1输入:1返回值:1示例2输入:3返回值:3//本质为斐波拉契数列 //1.假设当有n个台阶时假设有f(n)种走法。 //2.青蛙最后一步要么跨1个台阶要么跨2个台阶。 //3.当最后一步跨1个台阶时即之前有n-1个台阶,根据1的假设即n-1个台阶有f(n-1)种走法。 //4. 当最后一步跨2个台阶时即之前有n-2个台阶,根据翻译 2022-05-25 20:37:34 · 785 阅读 · 0 评论 -
(每日一练java)CC78 简化路径
描述请简化给出的Unix样式的文件绝对路径,也就是转换成规范路径在Unix样式的文件系统中, .代表当前目录,.. 表示将目录向上移动一级,更多的介绍可以查看 Absolute pathvsrelativepathinLinux/Unix请注意,返回的规范路径必须以斜杠“/”开头,并且两个目录名之间只能有一个斜杠“/”开头。如果存在的最后一级目录的话不能以“/”结尾。另外,转化出的规范路径必须是能表示给出的绝对路径的最短字符串。例如:文件路径 = "/web/", =>".....原创 2022-05-20 22:32:54 · 292 阅读 · 0 评论 -
(每日一练c++)CC77 编辑距离
描述给定两个单词word1和word2,请计算将word1转换为word2至少需要多少步操作。你可以对一个单词执行以下3种操作:a)在单词中插入一个字符b)删除单词中的一个字符c)替换单词中的一个字符示例1输入:"b",""返回值:1示例2输入:"ab","bc"返回值:2public class Solution { public int minDistance(String word1, String word2) {原创 2022-05-20 22:32:43 · 82 阅读 · 0 评论