牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共37篇)
题解 | #三数之和#
class Solution { public: vector<vector<int> > threeSum(vector<int> &num) {...
C++
数组
双指针
2022-10-08
0
284
题解 | #只出现一次的数字(二)#
int singleNumber(int* nums, int numsLen ) { int sum = 0; ...
C
数组
2022-09-21
0
321
题解 | #连续子数组的最大乘积#
每次检验一个数是否加入最大乘积子数组都要判断这个数加入后是否会让乘积变大。而当前值可能为正或为负,那么乘积可能变大或变小。 于是每次都记录最大乘积和最小乘积,然后分别乘上当前值再比较,同时注意还有当前值就是最大的情况。 于是用最大乘积数组dp_max, 和最小乘积数组dp_min。也会用...
C
数组
动态规划
2022-09-20
0
506
题解 | #调整数组顺序使奇数位于偶数前面(一)#
方法1——用一个新数组接收原数组中的偶数,通过一次遍历,把奇数留在原数组,按顺序从下标0开始放;把偶数依次放在新数组。 一次遍历完后,把偶数数组元素依次全部复刻到新数组后面接上即可。 int* reOrderArray(int* array, int ...
C
数组
2022-09-19
0
421
题解 | #数组中只出现一次的两个数字#
比如:{1,3,4,2,7,3,1,2} 第一步,全部异或的结果也就是4异或7的结果,记作s,0100^0111=0011。 原理1:相同的数异或结果为0,两个不同的数异或结果不为0,那么必有某个位为1,找出最低位的1. 第二步:上一步的结果s和0001按位与,看最低位是否为1,不...
C
数组
2022-09-18
0
393
题解 | #二维数组中的查找#
首先得弄懂题目的意思:行列均递增有序。利用这个特点从左下角开始对比,小于x就往右边更大的找,大于x就往上面更小的找。 bool Find(int target, int** array, int arrayRowLen, in...
数组
2022-09-17
0
253
题解 | #矩阵的最小路径和#
1、为了节省空间,就不专门建二维数组存储路径和,而直接在原数组中记录,将每个位置的权值改为到该位置的最短路径。 2、先处理首行,每个位置只可能从左边来,route[0][i]=route[0][i]+route[0][i-1],即从第二个位置开始均要加上前面位置的路径。 3、然后处理首列...
C
数组
2022-09-14
1
407
题解 | #删除升序数组的重复元素(一)#
双指针。 遇到相同的,后指针后移一步。 遇到不同的,把后指针指向的元素复制到前指针的下一个位置,后指针再后移一位继续比较。 int reArrangeArray(int* nums, int numsLen ) { &nbs...
数组
C
双指针
2022-08-31
0
302
题解 | #打印从1到最大的n位数#
int* printNumbers(int n, int* returnSize ) { int i = 0, j = 0; &nb...
C
数组
2022-08-30
0
349
题解 | #构建乘积数组#
方法一,双重循环,每一趟外循环就求出一个B[i]。在每趟外循环中,初始B[i]为1,然后避开A[i],只计算其他数的乘积。 int* multiply(int* A, int ALen, int* returnSize )&n...
C
数组
2022-08-29
0
329
首页
上一页
1
2
3
4
下一页
末页