题目地址:https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/ 题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 题目示例 示例 1: 输入: [7,5,6,4] 输出: 5 解题思路 暴力法:最容易想到的是暴力遍历,枚举寻找可能构成逆序对的个数,发现一个则res++,但可惜的是超时。 分治思想:Step1:分解,直至剩下一个元素为止,...
题目地址:https://leetcode-cn.com/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof/ 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 题目示例 示例 1: 输入: [10,2] 输出: "102" 示例 2: 输入: [3,30,34,5,9] 输出: "3033459" 解题思路 分析题目,数组排成最小的数的问题实质上是一个排序问题,所以,需要确定的是排序的规则。因为要排成最小的数,则对于两个数x、...
1.头文件:#include<array> 2.和数组有什么区别? 更安全,建议用其代替数组! 3.用法: array<int ,19>s 代表着 s[19] 并且里面的元素是int型 值得注意的是 array此时的数组并没有初始化 array 初始化的方法: (1) #include<iostream> #include<algorithm> #include<array> using namespace std; main(){array<int,3>m{0};for(auto i:m)cout<<m[i]<<" ";return 0; }结果为: (2) 代码为:#include<iostream> #include<alg...
在C++中,数组名其实是 一个指向数组第一个元素的常量指针。 在之前讲数组的博客(C++——一维数组 )中提到过,数组在内存中是线性结构。你可以想像有一个羽毛球筒(就是装羽毛球那个长长的盒子),假设里面最多可以装五个羽毛球,开口的一端是末端。那么可以把这个模型看成是一个数组,数组的大小为5(再大就装不下了)。 假设我们声明一个数组:int list[6] = {11, 12, 13, 14, 15, 16};那么这个数组在内存中存放的方式为: 我...
什么是数组 数组(array)是一个存储了固定大小,同类型元素的集合。也就是说,数组就是一个由多个同类型元素按顺序排列组成的一个集合。在程序执行的过程中我们经常会存储很多数据,这时候就需要使用到数组。比如存储100个学生的成绩,每个学生的成绩(假设都是整数)都是int类型的数值,这时候,把这些成绩放到一个int sorce[100]的数组中,就可以更加方便地查看或操作这些学生的成绩。 数组语法 声明数组//声明数组 elementType a...
#include<iostream.h> struct sss { int t[20]; int v[20]; }; //定义结构体,元素为数组类型 void ss(sss s[],int n,int r) { int sum=0; for(int i=0;i<n;i++) { for(int j=0;j<r;j++) sum+=s[i].t[j]+s[i].v[j]; } cout<<“所有元素和为:”<<sum<<endl; }//利用数组循环求和 int main() { int c,f; cout<<“请输入几组数据:”; cin>>c; cout<<“请输入每组几个数据:”; cin>>f; cout<<“按照要求需要输入”<<2cf<<“个数。”...
LeetCode 每日一题 912. 排序数组 难度 中等 给定一个整数数组 nums,将该数组升序排列。 示例 1: 输入:[5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:[5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 提示: 1 <= A.length <= 10000 -50000 <= A[i] <= 50000 题解 ??这是LeetCode在2020.03.31的每日一题,题目难度为中等,打开题目之后发现要求很简单,就是一个排序,不过是中等难度,原本以为会在时间复杂度上卡一下,结果也没有卡,这里直接使...
题目如下: 这道题经过好久的思考也没找到能一次性输入两组数的方法,只能一次性处理一组数,所以就把代码放上来,欢迎交流留言一起讨论可以放两组数的方法~(QQ 841587906) 1 #include <iostream>2 #include <vector>3 #include <algorithm>4 #include <string.h>5 #include <sstream>6 using namespace std;7 8 int swapNum(int length,vector<int>,vector<int>);9 10 int main() 11 { 12 /*先接收数列的长度 创建原数组...
?在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。【示例 1】输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3【限制】2 <= n <= 100000 【解题思路】 思路一:先将数组排序,再遍历,找出重复的数字。 利用C++内置的sort函数排序,该方法时间复杂度为O(nlogn),空间复杂度为O(1)。class Solution { pu...
c++中数组作为形参时,传递的是值还是地址? 运行如下程序using namespace std; int a[100]={1,2,3,4,5,6,7,8,9}; void cit( int b[100]){//将a的地址传给b,修改a相当于修改b b[1]=1113;//这里其实修改的是a[1]; cout<<b[1]<<endl; } int main(){cout<<a[1]<<endl;//输出数组的第一个元素 cout<<a<<endl;//输出数组的地址 //char d=A;cit(a);cout<<a[1];return 0; } 运行结果: 1.说明:数组作为形参时,传递的是地址。 在函数...
基本数据结构——队列(动态数组C++) 特点:先进先出、后进后出 队首front(为空,加一才是第一个数据)、队尾rear(指向数组的最后一个数据) 基本操作:Push 给队尾添加数据 Pop 从队首删除数据 Front 查看队首的数据 Rear 查看队尾的数据 IsEmpty 判断是否为空//建立头文件queue.h#ifndef _QUEUE_H #define _QUEUE_H #include<math.h> using namespace std;template<class T> class Queue { public:Queue(int queueCapacity = ...
题目链接https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/ 题目描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目示例 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, ...
题目A 题目描述 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。 假设数组长度为10,数组中前9个数(这9个数要求从键盘上输入,输入时要满足自小到大的输入顺序)已经按从小到大进行排序。 然后再从键盘上输入一个整数,将此整数插入到前有序的9个数中,使得最终的10个数依然是从小到大有序的。 输入 第一行输入以空格分隔的9个整数数,要求按从小到大的顺序输入。第二行输入一个整数 输出 从小到大输...
1. char数组:使用scanf("%[^c]",s)可以以c字符为间隔读取字符串。所以scanf("%[^\n]",s)可以以读取以换行符为间隔读取字符串。但是它不会吃掉换行符,所以scanf连着用时要用getchar()把中间的换行符吃掉才行。 2. string使用getline(cin,s)可以以换行符为间隔读取字符串。它会吃掉换行符,所以getline连着用不需要用getchar()吃掉换行符。
指针和const 禁止改写指针(常量指针或常指针) int x=0; int * const pInt = &x; 存放地址的变量pInt不可变,但pInt可指向其他变量,x的值可变。 禁止改写间接引用 int x=5; const int *pInt=&x; pInt中存放的地址可以变,但x的值不可变。 既禁止改写指针,又禁止改写间接引用 int x=5; const int * const pInt = &x; 指针和数组 在C++中数组和指针的关系十分密切,两者的内部处理方式几乎相同。访问数组中的元素有下标和指针两种形...