![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
专一的黄先生
这个作者很懒,什么都没留下…
展开
-
leetcode_数组_重复数字_217
/My overtime/class Solution {public:bool containsDuplicate(vector& nums) {for(int i =0 ; i < nums.size() ; i++){for(int j = i+1 ; j < nums.size() ; j++){if(nums[i] == nums[j])return ...原创 2020-05-17 21:32:27 · 115 阅读 · 0 评论 -
leetcode_数组_数组翻转_189
/my solution1 但是超时了 就是垃圾算法 耍流氓/class Solution {public:void rotate(vector& nums, int k) {while( k > 0){int temp = nums[nums.size() - 1] ;for(int i = nums.size() - 1 ;i > ;i–){nums[i]...原创 2020-05-17 21:23:54 · 172 阅读 · 0 评论 -
leetcode_数组_杨辉三角_118
/推荐/class Solution {public:vector<vector> generate(int numRows) {vector<vector> vec;for(int i= 0;i < numRows;i++){//将i+1行都设置为1vec.push_back(vector (i+1,1));if(i > 1){//杨辉三角是...原创 2020-05-17 21:23:44 · 106 阅读 · 0 评论 -
leetcode_算法_排序_提取两个数组的相同元素
349提取两个数组的相同元素基础知识http://www.cplusplus.com/reference/set/set/ ***!Set/hash_sethttps://www.cnblogs.com/CheeseZH/p/5176970.html@ 红黑树https://www.jianshu.com/p/e136ec79235c! 红黑树是平衡二叉树! 红黑树是二叉查找树...原创 2020-05-17 21:23:33 · 950 阅读 · 0 评论 -
leetcode_算法_排序_字母易位词
字母易位词1、预备知识A STLhttps://blog.csdn.net/u010183728/article/details/81913729!1 STL的一个重要特点是数据结构和算法的分离!2 STL另一个重要特性是它不是面向对象的!3 从逻辑层次来看,在STL中体现了泛型化程序设计的思想B map /multimapMap/Multimap:Map的元素是成对的键值/实...原创 2020-05-17 21:23:23 · 173 阅读 · 0 评论 -
leetcode_数组_重复数字_219
/my solution/class Solution {public:bool containsNearbyDuplicate(vector& nums, int k) {for(int i = 0 ; i < nums.size() - 1; i++){for(int j = i + 1; j < nums.size();j++){if((nums[i] == ...原创 2020-05-17 21:23:01 · 97 阅读 · 0 评论 -
leetcode_数组_移动零_283
/*my solution 有bug的背景知识:1、insert的插入位置是通过第一个参数确定的2、插入方式分为指定个数插入、指定插入区间插入、单个元素插入3、关于erase:This is generally an inefficient operation compared to the one performed for the same operation by other ki...原创 2020-05-17 21:22:52 · 102 阅读 · 0 评论 -
leetcode_数组_448_找到所有数组中消失的数字
/*1、时间复杂度:一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。2、https://blog.csdn.net/Super_King_...原创 2020-05-17 21:22:42 · 88 阅读 · 0 评论 -
leetcode_数组_最大连续1的个数_485
/*主要思想:动态规划之历史与现代模型(AToneH)1、一般来说 动态规划有两个变量 一个是历史变量(最大值 最小值或者其他带条件的值) 一个数现代变量(用于记录当前一次(阶段)操作的结果的记录)*/class Solution {public:int findMaxConsecutiveOnes(vector& nums) {int max = 0 , count = ...原创 2020-05-17 21:22:26 · 538 阅读 · 0 评论 -
leetcode_数组_缺失数字_268
class Solution {public:int missingNumber(vector& nums) {unordered_map< int , int> map;for(int i = 0 ;i < nums.size() ;i++){map(nums[i]) = 1;}}};class Solution {public:int miss...原创 2020-05-17 21:22:16 · 128 阅读 · 0 评论 -
leetcode_数组_414_第三大的数
/*核心思想:1、动态规划问题 max1 max2 max3都是一直在变的迭代变量 因为他们都会不断的迭代更新2、这个方法可以找最大的三个数*/class Solution {public:int thirdMax(vector& nums) {int n=nums.size();long long max1=LONG_MIN, max2=LONG_MIN, max3...原创 2020-05-17 21:22:06 · 92 阅读 · 0 评论 -
leetcode_数组_532_ 数组中的K-diff数对
class Solution {public:int findPairs(vector& nums, int k) {int sum=0;sort(nums.begin(),nums.end());for(int i=0;i<nums.size();++i){//这个条件的结果就是可以最大的程度上减少循环的次数 因为如果前后是相同的元素 显然就没有必要再进行判断了if...原创 2020-05-17 21:21:55 · 74 阅读 · 0 评论 -
leetcode_数组_566_重塑矩阵
class Solution {public:vector<vector> matrixReshape(vector<vector>& nums, int r, int c) {//二维vector的行数int m = nums.size();//二维vector的列数 特定行的size()就是列数int n = nums[0].size();//行...原创 2020-05-17 21:21:42 · 85 阅读 · 0 评论 -
leetcode_数组_605_种花问题
class Solution {public:bool canPlaceFlowers(vector& flowerbed, int n) {int pre=-2,cur=-2,cnt=0;for(int i=0;i<flowerbed.size();i++){if(flowerbed[i]==0)continue;else{if(flowerbed[i]==1)...原创 2020-05-17 21:21:34 · 149 阅读 · 0 评论 -
leetcode_数组_695_岛屿的最大面积
//题目含义:1、1就是陆地 0就是海水//递归:1、从为什么需要递归这个概念的角度来理解和使用递归方法2、递归定义是为了描述集合元素为无穷或者无法列举的问题或者描述中3、递归包含递归基以及递归规则或叫递归式//递归的使用方法和场景:1、找到每次变化规律是相同的东西2、在一个实现函数里调用实现函数自身class Solution {public://设计步骤:int df...原创 2020-05-17 21:21:22 · 106 阅读 · 0 评论 -
leetcode_数组_697_数组的度
/*数组元素的次数频率统计问题都可以用hash来做 主要有unordered_map*/class Solution {public:int findShortestSubArray(vector& nums) {int numsSize = nums.size(), res = INT_MAX, degree = 0;unordered_map<int, int&g...原创 2020-05-17 21:21:12 · 89 阅读 · 0 评论 -
leetcode_数组_628_ 三个数的最大乘积
class Solution {public:int maximumProduct(vector& nums) {int max1 = INT_MIN, max2 = INT_MIN, max3 = INT_MIN; //三个最大值int min1 = INT_MAX, min2 = INT_MAX; //两个最小值for(int num:nums){if(num<min...原创 2020-05-17 21:19:53 · 96 阅读 · 0 评论 -
leetcode_数组_561_数组拆分 I
class Solution {public:int arrayPairSum(vector& nums) {sort(nums.begin(), nums.end());int sum = 0;//奇数位求和for (int i = 0; i < nums.size(); i += 2) {sum += nums[i];}return sum;}};...原创 2020-05-17 21:19:42 · 79 阅读 · 0 评论 -
leetcode_数组_661_图片平滑器
/*https://blog.csdn.net/weixin_39003229/article/details/906412741、坐标(0,0)位置有两个1,包括自身三个1 还有一个0 所以是3/42、一种遍历数组周围元素的方法:for(int r=-1;r<=1;r++){for(int c=-1;c<=1;c++){row=i+r;col=j+c;*/c...原创 2020-05-17 21:19:31 · 117 阅读 · 0 评论 -
leetcode_数组_665_非递减数列
/*经验总结:1、flag变量一般都是bool型 用于记录唯一性、单次发生的事件2、扫描整个数组来确定问题对象是否满足目标存在(成立)的组织条件*/class Solution {public:bool checkPossibility(vector& nums) {bool usedFlag = false;//记录修改机会是否使用int numsSize = num...原创 2020-05-17 21:19:19 · 80 阅读 · 0 评论 -
leetcode_数组_674_最长连续递增序列
//1、用max来计算之前遍历中的最长的子列的长度//2、如何看得出这种分支:因为要判断和记录每次遍历的情况//3、这种问题其实是:遍历、判断、记录模型class Solution {public:int findLengthOfLCIS(vector& nums) {int count = 0;int max = 0;for(int i = 0,int j = 1;j &...原创 2020-05-17 21:19:09 · 93 阅读 · 0 评论 -
leetcode_数组_717_1比特与2比特字符
/*什么是程序:就是给定问题的初始值和条件 根据问题的规律 设计能处理问题各种可能的结果的处理流程*/class Solution {public:bool isOneBitCharacter(vector& bits) {int i = nums.size();if(nums[i] == 0){if(nums[i - 1] == 1){ }else{ ret...原创 2020-05-17 21:18:56 · 96 阅读 · 0 评论 -
leetcode_数组_724_寻找数组的中心索引
class Solution {public:int pivotIndex(vector& nums) {int index,leftest = 0;for(int i = 1 ;i < nums.size() - 1;i++){if(i == 0 || i == nums.size()) return -1;int j = i - 1;int k = i + 1;w...原创 2020-05-17 21:18:44 · 78 阅读 · 0 评论 -
leetcode_数组_766_托普利茨矩阵
/简单直接法/class Solution {public:bool isToeplitzMatrix(vector<vector>& matrix) {for(int i=0;i<matrix.size()-1;i++){for(int j=0;j<matrix[i].size()-1;j++){//因为特殊情况为不等的情况更少一些 所以应该以不...原创 2020-05-17 21:18:33 · 107 阅读 · 0 评论 -
leetcode_数组_849_到最近的人的最大距离
/*三种情况:左边全都可以坐,例如:[0,0,0,0,0,0,0,1]那就坐最左边的位置;右边全都可以坐,例如[1,0,0,0,0,0,0,0],那就坐最右边的位置;左右两边都有人,那就看哪一段空的座位最多,例如[1,0,0,0,0,0,1,0,1],有两段,坐第一段最中间。/class Solution {public:int maxDistToClosest(vector&am...原创 2020-05-17 21:18:24 · 116 阅读 · 0 评论 -
leetcode_数组_896_单调数列
/*所谓单调 就是不能有增又有减的*/class Solution {public:bool isMonotonic(vector& A) {int lon=A.size();if(lon1) return true;int a=0,b=0;for(int i=0;i<lon-1;i++){if(A[i]<A[i+1]) a=1; //前面比后面小,a...原创 2020-05-17 21:18:03 · 95 阅读 · 0 评论 -
leetcode_数组_867_转置矩阵
/*这里定义的二维数组就类似于一个temp变量 将被转置的数组的元素转置之后赋给这个temp变量*/class Solution {public:vector<vector> transpose(vector<vector>& A) {vector<vector> ans(A[0].size(),vector(A.size(),0));f...原创 2020-05-17 21:17:46 · 104 阅读 · 0 评论 -
leetcode_数组_905_按奇偶排序数组
/*C++里头非常喜欢将处理过的数组的元素 放到定义的一个容器中去本质上就是挑出原数组的某些元素 然后将他们放到一个新的数组当中去*/class Solution {public:vector sortArrayByParity(vector& A) {int len = A.size();if (len == 1) return A;vector vec(len, -...原创 2020-05-17 21:17:30 · 73 阅读 · 0 评论 -
leetcode_字符串_13_罗马数字转整数
class Solution {public:int romanToInt(string s) {//怎么将字符和数值建立映射 答案是用map就可以map<char, int> table = {{‘I’, 1},{‘V’, 5},{‘X’, 10},{‘L’, 50},{‘C’, 100},{‘D’, 500},{‘M’, 1000}}; int a...原创 2020-05-17 21:17:18 · 84 阅读 · 0 评论 -
leetcode_字符串_20_有效的括号
/*如果只包括一种括号,那么采用计数器方法进行匹配即可即可。但是本题包括 ‘ ( ’、‘ [ ’、‘ { ’ 三种括号,因此需要考虑不同括号出现的位置,采用计数器的方法行不通。所以最好的方法是采用 栈 来解决:初始化栈 S。一次处理表达式的每个括号。如果遇到开括号,将其存入栈顶即可,稍后处理。如果遇到闭括号,那么检查栈顶元素。如果栈顶的元素是一个 相同类型 的左括号,...原创 2020-05-17 21:17:05 · 108 阅读 · 0 评论 -
leetcode_字符串_28_实现 strStr()&&KMP算法
/*暴力法的特点就是强行遍历 满足条件就返回撤出*/class Solution {public:int strStr(string haystack, string needle) {if(needle.length()==0){return 0;}int i=0,j=0;while(i<haystack.length()&&j<needle....原创 2020-05-17 21:16:45 · 92 阅读 · 0 评论 -
leetcode_字符串_38_外观数列
/*模拟报数的过程,从起始点开始计数,如果出现不同,将当前的数值添加的cnt的值添加的temp中并且拼接当前的字符串s[j]依次循环, 返回答案,数据规模不大使用简单的枚举即可。作者:nnaczqy链接:https://leetcode-cn.com/problems/count-and-say/solution/mo-ni-ji-shu-guo-cheng-cpp-by-nnaczqy/...原创 2020-05-17 21:16:32 · 83 阅读 · 0 评论 -
leetcode_字符串_58_最后一个单词的长度
/*写程序很简单:分四步1. 确定自变量和数据结构/类等名字和成员关系2. 根据题目要求 确定实现过程的伪代码 然后实现3. 确定函数的返回值类型和内容4. 调试函数的边界处理和局部优化 乃至全局优化*/class Solution {public:int lengthOfLastWord(string s) {int lastlen=0,first=0,index=0;fo...原创 2020-05-17 21:15:56 · 94 阅读 · 0 评论 -
leetcode_字符串_67_二进制求和
/*不明觉厉:可以先以a = 1 b = 1来理解*/class Solution {public:string addBinary(string a, string b) {string s;//申请空间s.reserve(a.size() + b.size());int c = 0, i = a.size() - 1, j = b.size() - 1;while(i &...原创 2020-05-17 21:15:43 · 72 阅读 · 0 评论 -
leetcode_字符串_125_验证回文串
//isalnum:如果是数字。字母,那么会返回非0 其他则返回0class Solution {public:bool isPalindrome(string s) {// 双指针if(s.size() <= 1) return true;int i = 0, j = s.size() - 1;while(i < j){ // 排除所有非字母或数字的字符 ...原创 2020-05-17 21:04:48 · 84 阅读 · 0 评论 -
leetcode_字符串_125. 验证回文串
//为什么想到排除选择回文串是左右对称的,也就是从两侧到中间的字母对应位置为相等的//如何实现排除选择class Solution {public:bool isPalindrome(string s) {// 双指针if(s.size() <= 1) return true; int i = 0, j = s.size() - 1; while(i < ...原创 2020-05-17 21:04:34 · 102 阅读 · 0 评论 -
leetcode_字符串_344_反转字符串
class Solution {public:void reverseString(vector& s) {int i = 0;int j = s.size() - 1;char temp;while(i < j){temp = s[i];s[i++] = s[j];s[j++] = temp;}return s;}};原创 2020-05-17 21:04:20 · 82 阅读 · 0 评论 -
leetcode_字符串_345_反转字符串中的元音字母
//字符串的处理经常是需要两个遍历变量去分别从头到尾去遍历//在遍历的过程中做一些带条件判断的处理class Solution {public://在一个类里边去定义一个函数 在该类里边去调用bool find(char c){ //判断一个东西是不是元音字母 可以通过或运算符来实现return c == ‘a’ || c == ‘e’ || c == ‘i’ || c == ...原创 2020-05-17 21:04:09 · 97 阅读 · 0 评论 -
leetcode_字符串_383_赎金信
/*此题最难的就是读懂题,此题的意思是用后面字符串的字符是否可以组成前面一个字符,所此题只需要判断后面各个字符的总数是否大于前面字符的即可,这又成了一个映射问题,字符映射个数,所以我们又可以用map来解决问题,只需要先遍历后面字符串统计所有字符出现的次数,然后在遍历前面一个字符串,然后每遍历一个字符串就减去1再判断是否小于0即可。遇到有映射关系的题就要优先考虑使用map*/class S...原创 2020-05-17 21:03:57 · 86 阅读 · 0 评论 -
leetcode_字符串_434_字符串中的单词数
class Solution {public:int countSegments(string s) {int alpha_count = 0;for(int i = 0;i < s.length();i++){if(isalpha(s[i])){continue;}else{alpha_count++;}}return alpha_count;}};原创 2020-05-17 21:03:45 · 80 阅读 · 0 评论