当前位置: 首页 > wzjs >正文

仪征市企业网站建设公司没有照片怎么做网站

仪征市企业网站建设公司,没有照片怎么做网站,台州网站建站公司,湛江网站制作江网站制作目录 引言 ###刷题实战 (一)移除数组中的重复元素 (二)数组中出现次数超过一半的数字 (三)杨辉三角 (四)只出现一次的数字 (五)找出数组中两个只出现一…

目录

引言

###刷题实战

(一)移除数组中的重复元素

(二)数组中出现次数超过一半的数字

(三)杨辉三角

(四)只出现一次的数字

(五)找出数组中两个只出现一次的数字

###总结


引言

在算法学习和求职准备的过程中,刷题是绕不开的环节。这段时间我在刷算法题,主要使用 C++ 语言来实现,在这个过程中积累了不少解题思路和经验,也对 C++ 的特性有了更深的理解,今天就来和大家分享一下。

###刷题实战

(一)移除数组中的重复元素

- 题目描述:给定一个数组  nums ,要求在原数组上移除重复元素,使得每个元素只出现一次,并返回移除后数组的新长度。

- 解题思路:采用双指针法,定义一个慢指针  slow  和一个快指针  fast 。 slow  指针指向不重复元素的最后一个位置, fast  指针用于遍历数组。当  nums[fast]  与  nums[slow]  不相等时,将  nums[fast]  赋值给  nums[++slow] ,最后返回  slow + 1  即为不重复元素的个数。

- C++ 代码实现:

cppclass Solution {public:int removeDuplicates(vector<int>& nums) {if(nums.size()==0)return 0;int slow=0,fast=1;while(fast<nums.size()){if(nums[fast]!=nums[slow]){nums[++slow]=nums[fast++];}else{fast++;}}return slow+1;}};

(二)数组中出现次数超过一半的数字

- 题目描述:给一个长度为  n  的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。

- 解题思路:这里采用排序后取中间值的方法。先对数组进行排序,由于目标数字出现次数超过一半,那么排序后数组中间位置的数字必然是目标数字。

- C++ 代码实现:

cppclass Solution {public:int MoreThanHalfNum_Solution(vector<int>& numbers) {sort(numbers.begin(),numbers.end());return numbers[numbers.size()/2];}};

(三)杨辉三角

 题目描述:给定一个非负整数  numRows ,生成「杨辉三角」的前  numRows  行。

- 解题思路:杨辉三角的特点是每行两端的数字都是 1,中间的数字是其上方两数字之和。先初始化每一行的首尾为 1,然后根据规律计算中间的数字。

- C++ 代码实现:

cppclass Solution {public:vector<vector<int>> generate(int numRows) {vector<vector<int>> vv;vv.resize(numRows);for(int i=0;i<numRows;i++){vv[i].resize(i+1,0);vv[i][0]=vv[i][i]=1;}for(int i=0;i<vv.size();i++){for(int j = 1; j < i; j++){vv[i][j] = vv[i - 1][j - 1] + vv[i - 1][j];}}return vv;}};

(四)只出现一次的数字

- 题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

- 解题思路:利用异或运算的性质,两个相同的数异或结果为 0,0 和任何数异或结果为那个数本身。将数组中的所有元素依次异或,最终结果就是只出现一次的数字。

- C++ 代码实现:

cppclass Solution {public:int singleNumber(vector<int>& nums) {int ret=nums[0];for(int i=1;i<nums.size();i++)ret^=nums[i];return ret;}};

(五)找出数组中两个只出现一次的数字

- 题目描述:一个整型数组里除了两个数字只出现一次,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。

- 解题思路:先对数组所有元素进行异或操作,得到两个只出现一次数字的异或结果  tmp 。然后找到  tmp  中为 1 的一位,根据这一位将数组分为两组,分别对两组进行异或操作,就可以得到这两个只出现一次的数字。

- C++ 代码实现:

cppclass Solution {public:vector<int> findNumsAppearOnce(vector<int>& nums) {int tmp = 0;for(auto num : nums){tmp ^= num;}//寻找1int i = 0;while(i < 32){if(tmp>>i & 1) break;i++;}//再次遍历int a = 0, b = 0;for(auto num : nums){if((num>>i)&1){a ^= num;}else{b ^= num;}}return {a, b};}};

###总结

通过这段时间的刷题,我不仅对 C++ 的语法和特性更加熟悉,也掌握了不少算法解题技巧,比如双指针法、排序法、位运算等。在解题过程中,对问题进行深入分析,找到合适的算法思路是关键,同时也要注意代码的时间复杂度和空间复杂度,以满足题目要求。刷题是一个长期积累的过程,后续我还会继续分享更多的解题经验和技术总结,希望能对大家有所帮助。

希望这篇博客对你有所帮助,欢迎在评论区交流讨论!

http://www.dtcms.com/wzjs/821859.html

相关文章:

  • 做物流网站找哪家好e4a做网站app
  • 手机上怎么做网站创业最常见企业网站公司有哪些
  • 汽车销售网站模板 cmsdede手机网站更新
  • 网站建站网站91955wordpress 图片失效
  • 网站建设内容存储阿里云虚拟主机配置wordpress
  • 中国做网站最好的企业怎么用手机做网站
  • 做珠宝建个网站推广怎么样ui设计培训学校哪家好
  • 泉州建站公司模板京东企业网站建设思路
  • 数据库与网站建设的关系微信小程序商城怎么弄
  • 网站的后缀名怎么建设简单的网页制作代码
  • 分类信息网站系统wordpress 文件夹名称
  • 茶叶有什么网站可以做推广网站建设+临沂
  • 做网站推广运营前景深圳网站建设服务哪个便宜啊
  • 购买一级域名做网站南京百度做网站的电话
  • 网站地图制作视频教程wordpress带会员中心
  • 昆明网络公司网站建设房屋设计图制作软件
  • 搜狗提交网站入口标志与设计
  • 电商网站如何备案中国会展公司排名前十的公司
  • 做特效很牛的一个外国网站网站标题更换
  • 网站打不开服务器错误域名抢注
  • wordpress建站流量互联网行业分析
  • 长春网站快速优化排名如何选择电商网站建设
  • php代码删除网站wordpress静态化首页
  • 广州免费建站推荐wordpress如何添加自定义字段
  • 茶叶网站建设模板网站备案和域名备案一样吗
  • 上海网站建设推荐移动互联网开发技术期末试题
  • 适合vue做的网站类型h5制作网站开发
  • 一个主机怎么做两个网站有什么好的加盟店项目
  • 网站正在建设中页面的英文用手机做网站
  • 网站外包维护一年多少钱晋江网站网站建设