当前位置: 首页> 教育> 就业 > 公司简介海报_网站建设的宿主选择_windows优化大师有哪些功能_网销怎么做才能做好

公司简介海报_网站建设的宿主选择_windows优化大师有哪些功能_网销怎么做才能做好

时间:2025/7/12 5:45:42来源:https://blog.csdn.net/m0_60754876/article/details/144300137 浏览次数:0次
公司简介海报_网站建设的宿主选择_windows优化大师有哪些功能_网销怎么做才能做好

isalnum函数用于检查一个字符是否为字母或数字。它的参数是一个int类型

isupper() 是大写

islower() 是小写

toupper() 变成大写

tolower() 变成小写

do while 首先不管怎么 先执行do一次 然后执行完了之后 在判断while如果符合while里面就继续执行do

vector容器中insert怎么使用 

// 在开始位置之前插入单个元素 5  it.insert(it.ebgin(), 5);

//插入五个六  it.insert(it.begin(),5,6);

//在第一个元素之前插入nums中的所有元素 it.isert(it.begin(),nums.begin(),nums.end());

(一)数组 / 字符串

1 合并两个有序数组

在 C++ 中,vector<int> nums3(10);创建了一个名为nums3vector容器,用于存储整数类型数据。括号中的10表示容器的初始大小,如何在往里加入 那就是在10这个大小之后加入!


2 移除元素

方法要学会 2023.9.15那个方法很好

3 删除有序数组中的重复项

4 删除有序数组中的重复项(II)

我首先想的是 利用一个 左 中 右 来实现 就是遍历我们这个数组如果左等于中 中等于右 那我直接删除右  如果不一样 直接 左等于右 中等于右加1  右等于右+2  这个是错的想法  比如 1 2 2 2 你自己看看你这样子对吗 肯定不对 

新想法  给一个left = 0 sum = 1 从1开始遍历我们的数组 如果数组中nums[i] ==nums[i-1]直接sum++,之后判断sum if sum<=2  直接把我们left++ 然后nums[left] = nums[i] if >2 那我们直接不用管 。如果数组中nums[i] !=nums[i-1] sum重新变成 1 left++ nums[left] = nums[i]   最后返回 left+1即可 因为left是下标 我们返回的是大小 所以我们+1 

5 多数元素 

6 轮转数组

问题很简单就是需要把后面多少个元素放到前面来呢? 

  //剩下的也插入进去

      num.insert(num.begin()+k, nums.begin(), nums.end() - k); 注意这里是+k而不是 k+1(因为我们begin代表的是第一个元素) 

7 买卖股票的最佳时机

7 买卖股票的最佳时机II

8跳跃游戏  不用做了 看看得了

这个题目就是从后往前来看的 注意审题 是到达最后一个下标位置,因此最后一个不再考虑范围之内 我们要从倒数第二个开始考虑(倒数第二个下表是.size()-2 不是-1

(二)双指针 

1 验证回文串 

2 判断子序列

3 两数之和||

这里最重要的就是二分查找 如果单纯两个for循环会超时 

我们进行二分查找就是左闭右闭或者左闭右开 基本不写左开右闭。

想想二分查找怎么用

4 乘最多水的容量

这个题目比较好玩,用双指针来做,就是我们一开始固定left = 0,right  = num.size()-1

我们容量取决于 左右中最短的那个,还取决于 右-左 的长度

考虑一个问题 如果 right 是短的那个 如果我们移动的时候仅仅移动 left  那我们容量是肯定减少的 因为right是短的那个 我们又把距离缩短了 那肯定不会有更大的容量呀 所以我们需要移动right;

因此代码就很简单的写出来了

5 三数之和

思路就是循环遍历数组,得到一个数 取负值,在这个元素的后面找两数之和等于他的集合

注意 首先我们要对遍历数组进行去重

   // 跳过重复的i值,避免重复结果

            if (i > 0 && nums[i] == nums[i - 1]) {

                continue;

            }

left right进行去重,去重逻辑很重要!

 while (left < right && nums[left] == nums[left - 1]) {left++;}while (left < right && nums[right] == nums[right + 1]) {  
//有一种可能就是我们right本来就是最大的了这样子就错了!!!!!!!!!!!right--;}}

这段代码应该在  else 里面    这个里面具体原因在代码中已经写出来 

还有要注意的是 我们本身是while 如果没有left<right 的话 那肯定会出错 因为 比如我们第一个while没有 如果left一直++ 那有可能会出现问题就是 越界 超过nums的范围! 

(三)滑动窗口

1长度最小的子数组

采用的滑动窗口来做,for循环 sum不断加我们的nums[i]直到满足 sum>=target 如果满足就进行减 

详情看2024.09.18这个是最简单的想法 我也有自己写但是稍微复杂一点 

关键字:公司简介海报_网站建设的宿主选择_windows优化大师有哪些功能_网销怎么做才能做好

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: