自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浅谈KMP算法【c++】

一、暴力做法给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模板串P在模式串S 中多次作为子串出现。求出模板串P在模式串S中所有出现的位置的起始下标。输入格式第一行输入整数N,表示字符串P的长度。第二行输入字符串P。第三行输入整数M,表示字符串S的长度。第四行输入字符串S。输出格式共一行,输出所有出现位置的起始下标(下标从0开始计数),整数之间用空格隔开。数据范围1≤N≤10^51≤M...

2022-03-08 15:39:42 123

原创 AcWing 802. 区间和【c++】

一、题目假定有一个无限长的数轴,数轴上每个坐标上的数都是00。现在,我们首先进行nn次操作,每次操作将某一位置xx上的数加cc。接下来,进行mm次询问,每个询问包含两个整数ll和rr,你需要求出在区间[l,r][l,r]之间的所有数的和。输入格式第一行包含两个整数nn和mm。接下来nn行,每行包含两个整数xx和cc。再接下来mm行,每行包含两个整数ll和rr。输出格式共mm行,每行输出一个询问中所求的区间内数字和。...

2022-03-05 16:28:20 101

原创 AcWing 801. 二进制中1的个数 【c++】

一、题目给定一个长度为 nn 的数列,请你求出数列中每个数的二进制表示中 11 的个数。输入格式第一行包含整数 nn。第二行包含 nn 个整数,表示整个数列。输出格式共一行,包含 nn 个整数,其中的第 ii 个数表示数列中的第 ii 个数的二进制表示中 11 的个数。数据范围1≤n≤1000001≤n≤100000,0≤数列中元素的值≤1090≤数列中元素的值≤109输入样例:51 2 3 4 5输出样例:1 1 2 1 2二、题解lowb

2022-02-08 20:46:20 574 1

原创 AcWing 799. 最长连续不重复子序列【c++】

一、题目给定一个长度为 nn 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数 nn。第二行包含 nn 个整数(均在 0∼1050∼105 范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤n≤1051≤n≤105输入样例:51 2 2 3 5输出样例:3二、题解双指针算法的简单运用,巧妙地运用标记数组进行check#include <i

2022-02-08 20:07:02 577

原创 AcWing 798. 差分矩阵【c++】

一、题目输入一个nn行mm列的整数矩阵,再输入qq个操作,每个操作包含五个整数x1,y1,x2,y2,cx1,y1,x2,y2,c,其中(x1,y1)(x1,y1)和(x2,y2)(x2,y2)表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上cc。请你将进行完所有操作后的矩阵输出。输入格式第一行包含整数n,m,qn,m,q。接下来nn行,每行包含mm个整数,表示整数矩阵。接下来qq行,每行包含55个整...

2022-02-07 18:30:26 78

原创 AcWing 797. 差分【c++】

一、题目输入一个长度为nn的整数序列。接下来输入mm个操作,每个操作包含三个整数l,r,cl,r,c,表示将序列中[l,r][l,r]之间的每个数加上cc。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数nn和mm。第二行包含nn个整数,表示整数序列。接下来mm行,每行包含三个整数l,r,cl,r,c,表示一个操作。输出格式共一行,包含nn个整数,表示最终序列。数据范围1≤n,m≤1000001≤n,m≤100000,...

2022-02-07 17:43:19 74

原创 AcWing 796. 子矩阵的和 【c++】

一、题目输入一个 nn 行 mm 列的整数矩阵,再输入 qq 个询问,每个询问包含四个整数 x1,y1,x2,y2x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。输入格式第一行包含三个整数 n,m,qn,m,q。接下来 nn 行,每行包含 mm 个整数,表示整数矩阵。接下来 qq 行,每行包含四个整数 x1,y1,x2,y2x1,y1,x2,y2,表示一组询问。输出格式共 qq 行,每行输出一个询问的结果。数据范围1

2022-02-04 20:46:10 275

原创 AcWing.795. 前缀和【c++】

一、题目输入一个长度为nn的整数序列。接下来再输入mm个询问,每个询问输入一对l,rl,r。对于每个询问,输出原序列中从第ll个数到第rr个数的和。输入格式第一行包含两个整数nn和mm。第二行包含nn个整数,表示整数数列。接下来mm行,每行包含两个整数ll和rr,表示一个询问的区间范围。输出格式共mm行,每行输出一个询问的结果。数据范围1≤l≤r≤n1≤l≤r≤n,1≤n,m≤1000001≤n,m≤100000,−1...

2022-01-24 20:04:16 1200

原创 AcWing.794. 高精度除法【c++】

一、题目给定两个非负整数(不含前导00)A,BA,B,请你计算A/BA/B的商和余数。输入格式共两行,第一行包含整数AA,第二行包含整数BB。输出格式共两行,第一行输出所求的商,第二行输出所求余数。数据范围1≤A的长度≤1000001≤A的长度≤100000,1≤B≤100001≤B≤10000,BB一定不为00输入样例:72输出样例:31二、解答#include <iostream>#include <...

2022-01-24 19:41:39 57

原创 LeetCode 283.移动零【c++】

一、题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。二、解答i,j双指针,用i遍历数组,用j记录非零数,最后补0class Solution {public: void moveZeroes(vector<int>& nums) { int

2022-01-17 15:21:12 96

原创 AcWing.793. 高精度乘法【c++】

一、题目给定两个非负整数(不含前导00)AA和BB,请你计算A×BA×B的值。输入格式共两行,第一行包含整数AA,第二行包含整数BB。输出格式共一行,包含A×BA×B的值。数据范围1≤A的长度≤1000001≤A的长度≤100000,0≤B≤100000≤B≤10000输入样例:23输出样例:6二、解答跟高精度加法类似#include <iostream>#include <vector>us...

2022-01-17 14:45:27 143

原创 AcWing.792. 高精度减法【c++】

一、题目给定两个正整数(不含前导00),计算它们的差,计算结果可能为负数。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的差。数据范围1≤整数长度≤1051≤整数长度≤105输入样例:3211输出样例:21二、解答跟高精度加法类似,注意去掉前导零,比较A,B大小就可以了#include <iostream>#include <vector>using namespace std;bool cmp(.

2022-01-17 14:31:51 61

原创 AcWing.791. 高精度加法【c++】

一、题目给定两个正整数(不含前导00),计算它们的和。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的和。数据范围1≤整数长度≤1000001≤整数长度≤100000输入样例:1223输出样例:35二、解答#include <iostream>#include <vector>using namespace std;const int N = 100010;vector<int> add.

2022-01-17 14:05:06 67

原创 AcWing.790. 数的三次方根【c++】

一、题目给定一个浮点数 nn,求它的三次方根。输入格式共一行,包含一个浮点数 nn。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留 66 位小数。数据范围−10000≤n≤10000−10000≤n≤10000输入样例:1000.00输出样例:10.000000二、解答很水的题目...#include <iostream>using namespace std;int main(){ double n

2022-01-17 13:45:58 259

原创 AcWing.789. 数的范围【c++】

一、题目给定一个按照升序排列的长度为nn的整数数组,以及qq个查询。对于每个查询,返回一个元素kk的起始位置和终止位置(位置从00开始计数)。如果数组中不存在该元素,则返回-1 -1。输入格式第一行包含整数nn和qq,表示数组长度和询问个数。第二行包含nn个整数(均在1∼100001∼10000范围内),表示完整数组。接下来qq行,每行包含一个整数kk,表示一个询问元素。输出格式共qq行,每行包含两个整数,表示所求元素的起始位置和...

2022-01-17 13:20:04 102

原创 AcWing.788. 逆序对的数量【c++】

一、题目给定一个长度为nn的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第ii个和第jj个元素,如果满足i<ji<j且a[i]>a[j]a[i]>a[j],则其为一个逆序对;否则不是。输入格式第一行包含整数nn,表示数列的长度。第二行包含nn个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围1≤n≤1000001≤n≤100000,数列中的元素的取值范围[1,109][1,10...

2022-01-16 22:18:28 224

原创 AcWing.787. 归并排序【c++】

一、题目给定你一个长度为nn的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数nn。第二行包含nn个整数(所有整数均在1∼1091∼109范围内),表示整个数列。输出格式输出共一行,包含nn个整数,表示排好序的数列。数据范围1≤n≤1000001≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5二、解答简单的归并排序。...

2022-01-16 20:23:02 55

原创 AcWing.786. 第k个数.【c++】

一、题目给定一个长度为 nn 的整数数列,以及一个整数 kk,请用快速选择算法求出数列从小到大排序后的第 kk 个数。输入格式第一行包含两个整数 nn 和 kk。第二行包含 nn 个整数(所有整数均在 1∼1091∼109 范围内),表示整数数列。输出格式输出一个整数,表示数列的第 kk小数。数据范围1≤n≤1000001≤n≤100000,1≤k≤n1≤k≤n输入样例:5 32 4 1 5 3输出样例:3二、解答快排之后,输出第k个数,即数

2022-01-16 19:54:05 146

原创 AcWing785.快速排序.【c++】

一、题目给定你一个长度为nn的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数nn。第二行包含nn个整数(所有整数均在1∼1091∼109范围内),表示整个数列。输出格式输出共一行,包含nn个整数,表示排好序的数列。数据范围1≤n≤1000001≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5二、解答AcWing的第一课...

2022-01-16 19:49:49 66

原创 LeetCode1. 两数之和.【c++】

一、题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,

2022-01-16 19:17:00 50

原创 LeetCode 88. 合并两个有序数组.【c++】

一、题目给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例 1:输入:nums1

2022-01-15 21:49:14 119 1

空空如也

空空如也

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

TA关注的人

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