- 博客(7)
- 收藏
- 关注
原创 合并俩个有序链表
/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nullptr){}*ListNode(intx,ListNode*next):val(x),nex...
2022-03-05 23:55:27 524
原创 有效的数独
根据题目,我们可以创造俩个二维数组与一个三维数组,分别存放每行,每列,以及每个小九宫格1~9出现的次数rows[9][9]-------表示一个二维数组,第一个存放下标i(表示第i行),第二个存放index(记录0~9出现的次数)以rows[9][9]为例:index 0 1 2 3 4 5 6 7 8 9i=1 0 0 1 0 1 0 1 0 0 0classSolution{public:boolisValidSudoku(vector<...
2022-03-02 21:52:16 148
原创 杨辉三角浅解
1。classSolution{public:vector<vector<int>>generate(intnumRows){vector<vector<int>>tangle;vector<int>a;a.push_back(1);tangle.push_back(a);if(numRows==1){...
2022-03-01 21:20:27 106
原创 重塑矩阵的方法
将m*n的矩阵转换成r*c的矩阵:所以他们之间元素个数必定相等,即m*n=r*c;可以将这俩个二维数组想象为一个元素等长的一维数组,从一位数组中每次取n个就组成了二维数组m*n;每次取c个就组成了二维数组r*c;所以两个数组的元素下标将会有如下关系;用mat1即为m*n数组;mat2为r*c;mat2[i][j]=mat1[((i*c+j)/n)][((i*c+j)%n)];故重塑完成!classSolution{public:vector<vector&l...
2022-02-28 19:15:27 232
原创 买股票的时期
1.看这个价格数组prices[],设置两个指针,ind1,ind2,ind1在始终ind2的前面;如果p[1](prices[ind1])>p[2],ind1=ind2,ind2=ind1+1(出售价比买进价高肯定亏);int prices[] = { 7,4,6,8,2,9 }; int n = 6; int ind1 = 0; int ind2 = ind1 + 1; int temp = 0;//temp表示利润,开始为0; while (i...
2022-02-26 19:44:54 194
原创 最大连续子数组和
1.动态规划;我们不妨设f(i)为以i元素结尾的连续最大子数组和,那么当我们求出i~n-1的f(i)时,输出f(i)最大值就即为所求: f(i) = max{f(i-1)+nums[i],nums[i]};//f(i)的值是与f(i-1)与nums[i]有关的。classSolution{public:intmaxSubArray(vector<int>&nums){intpre=0,maxani=n...
2022-02-23 14:21:40 607
原创 存在重复元素
使用时间复杂度为O(n)的算法classSolution{public:boolcontainsDuplicate(vector<int>&nums){sort(nums.begin(),nums.end());//将数组中元素用sort()函数进行排列;intn=nums.size();for(inti=0;i<n-1;i++){if(nums[i]=...
2022-02-23 13:32:50 587
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人