# 【LeetCode】错误的集合&&在排序数组中查找元素的第一个和最后一个位置&&杨氏矩阵&&寻找数组的中心下标&&两个数组的交集

​🌠 作者：@阿亮joy.
🎆专栏：《阿亮爱刷题》
🎇 座右铭：每个优秀的人都有一段沉默的时光，那段时光是付出了很多努力却得不到结果的日子，我们把它叫做扎根

• 2

### 思路一

int cmp(const void* e1, const void* e2)
{
return *(int*)e1 - *(int*)e2;
}

int* findErrorNums(int* nums, int numsSize, int* returnSize)
{
qsort(nums,numsSize,sizeof(int),cmp);
int* ret = (int*)malloc(sizeof(int)*2);

*returnSize = 2;
int i = 0;
int prev = 0;
for(i = 0; i < numsSize; i++)
{
int cur = nums[i];

if(prev == cur)
{
ret[0] = prev;
}

else if(cur - prev == 2)
{
ret[1] = prev + 1;
}
prev = cur;
}

if(nums[numsSize-1] != numsSize)
{
ret[1] = numsSize;
}
return ret;
}


### 思路二

int* findErrorNums(int* nums, int numsSize, int* returnSize)
{

int* arr = (int*)calloc(numsSize+1, sizeof(int));

int* ret = (int*)calloc(2, sizeof(int));
*returnSize = 2;
int oddSum = 0;
int curSum = 0;
int i = 0;
for(i = 0;i < numsSize; i++)
{
if(arr[nums[i]] == 1)
{
ret[0] = nums[i];
}
arr[nums[i]] = 1;
oddSum += i+1;
curSum += nums[i];
}
ret[1] = oddSum + ret[0] - curSum;
free(arr);
return ret;
}


• 0


int binarySearch(int* nums,int numsSize,int target)
{
int left=0;
int right=numsSize-1;
while(leftright)
{
int mid=left+(right-left)/2;
if(nums[mid]<target)
{
left=mid+1;
}
else if(nums[mid]>=target)
{
right=mid-1;
}
}
return left;
}

int* searchRange(int* nums, int numsSize, int target, int* returnSize)
{
int first=binarySearch(nums,numsSize,target);
int last=binarySearch(nums,numsSize,target+1);
int* result=(int*)malloc(sizeof(int)*2);
*returnSize=2;

if(first==numsSize||nums[first]!=target)
{
result[0]=-1;
result[1]=-1;
return result;
}
else
{
result[0]=first;
result[1]=last-1;
return result;
}
}


[1, 4, 7, 11, 15],
[2, 5, 8, 12, 19],
[3, 6, 9, 16, 22],
[10, 13, 14, 17, 24],
[18, 21, 23, 26, 30].
]

bool searchMatrix(int** matrix, int matrixSize, int matrixColSize, int target)
{
int row = 0;
int col = matrixColSize - 1;
while((row < matrixSize) && (col >= 0))
{
int num = matrix[row][col];
if(num > target)
{
col--;
}
else if(num < target)
{
row++;
}
else
{
return true;
}
}

return false;
}


• 1

int pivotIndex(int* nums, int numsSize)
{
int sum=0;
int i=0;
for(i=0;i<numsSize;i++)
{
sum+=nums[i];
}
int sum1=0;
int sum2=0;
for(i=0;i<numsSize;i++)
{

sum1+=nums[i];
sum2=sum-sum1+nums[i];
if(sum1==sum2)
{
return i;
}
}
return -1;
}


• 1

int cmp(const void* a, const void* b)
{
return *(int*)a - *(int*)b;
}

int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize)
{

qsort(nums1,nums1Size,sizeof(int),cmp);
qsort(nums2,nums2Size,sizeof(int),cmp);

int max = nums1Size > nums2Size ? nums1Size : nums2Size;
int* ret = (int*)malloc(sizeof(int)*max);

int index1 = 0;
int index2 = 0;
*returnSize = 0;
while((index1 < nums1Size) && (index2 < nums2Size))
{
int num1 = nums1[index1];
int num2 = nums2[index2];
if(num1 == num2)
{

if(!(*returnSize) || (ret[(*returnSize) - 1] != num1))
{
ret[(*returnSize)++] = num1;
}
index1++;
index2++;
}
else if(num1 > num2)
{
index2++;
}
else
{
index1++;
}
}
return ret;
}


## 👉总结👈

Original: https://blog.csdn.net/m0_63639164/article/details/126555727
Author: 阿亮joy.
Title: 【LeetCode】错误的集合&&在排序数组中查找元素的第一个和最后一个位置&&杨氏矩阵&&寻找数组的中心下标&&两个数组的交集

(0)

### 大家都在看

• #### 有哪些常见的数据隐私管理系统

注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

人工智能 2023年3月21日
046
• #### 如何在Python中实现CNN用于MNIST数据集分类

注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

人工智能 2023年3月24日
038
• #### citespace如何导出图片_如何调整CiteSpace里project的参数

注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

人工智能 2022年10月2日
0279
• #### （Linux）使用conda配置兼容TensorFlow和PyTorch的env环境

注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

人工智能 2022年9月5日
0147
• #### [知识图谱]Python-调用维基百科官方API查询返回json数据的数据模型解析（Wikidata datamodel）- 超详细介绍

注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

人工智能 2022年10月2日
0171
• #### 【计算机视觉】OpenCV算法解析

文章目录 0. 前言 1. OpenCV 2. 线性回归算法：最小二乘法 * 【代码实现】 3. 随机采样一致性（RANSAC） * 3.1 算法简介 3.2 RANSAC在最小二…

人工智能 2023年7月19日
016
• #### 神经网络的数学基础

每个神经层都用下述方法对输入数据进行变换：o u t p u t = r e l u ( d o t ( W , i n p u t ) + b ) output = relu(d…

人工智能 2023年7月14日
026
• #### 基于麻雀算法优化LSTM回归预测（matlab）

基于麻雀算法优化LSTM回归预测（matlab） 概述： 麻雀算法构思 lstm原理 麻雀优化lstm原理 代码及结果展示 第一部分 麻雀算法构思 众所周知，麻雀是常见的留鸟而且非…

人工智能 2023年6月17日
016
• #### Python每日一练—–买卖股票的最佳时机Ⅲ

动态规划解法 进行动态规划五部曲 ✨ 1.分析确定dp数组以及其下标的含义或状态分析这里不用dp数组，进行状态分析 在第i天结束后，有下面5个状态 （1）不买也不卖 （2）进行了一…

人工智能 2023年6月18日
025
• #### yolov5的onnx推断示例和思路记录（包含detect.py的最新源码解读）

最近把yolov5的模型导出为了onnx格式，想写一个脚本来验证一下结果，看看和直接使用pt文件进行推断有无出入，虽然官方在detect.py文件里可以针对各种模型格式直接进行推断…

人工智能 2023年7月20日
019
• #### 我的设计模式之旅、02 单例模式（第二次更新）

编程旅途是漫长遥远的，在不同时刻有不同的感悟，本文会一直更新下去。 思考总结 什么是单例模式 单例模式（Singleton Pattern）属于创建型模式，它提供了一种创建对象的最…

人工智能 2023年6月4日
026
• #### Layer Normalization解析

注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

人工智能 2022年12月19日
074
• #### 缺失数据填补基础方法（3）——Multiple Imputation by Chained Equations (MICE)

注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

人工智能 2022年11月11日
0167
• #### 计算机视觉教程2-6：八大图像特效算法制作你的专属滤镜(附Python代码)

注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

人工智能 2022年12月19日
0126
• #### Numpy报错：ImportError: numpy.core.multiarray failed to import

导入自定义的 python 模块时，出现以下报错： ImportError: numpy.core.multiarray failed to import from .cv2 im…

人工智能 2023年6月17日
018
• #### 中文文本纠错任务简介

注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

人工智能 2022年9月11日
0202