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

珠海网站制作公司旅游网站网页设计

珠海网站制作公司,旅游网站网页设计,哪里做公司网站比较好,深圳在线招聘最新消息文章目录 旋转数组的最小数字比较版本号 旋转数组的最小数字 题目链接&#xff1a;旋转数组的最小数字 解题思路1&#xff1a;遍历求最小值 代码如下&#xff1a; int minNumberInRotateArray(vector<int> rotateArray) {int min rotateArray[0];for(auto const&…

文章目录

  • 旋转数组的最小数字
  • 比较版本号

旋转数组的最小数字

题目链接:旋转数组的最小数字

解题思路1:遍历求最小值

代码如下:

    int minNumberInRotateArray(vector<int> rotateArray) {int min = rotateArray[0];for(auto const& e: rotateArray){if(e < min){min = e;}}return min;}

解题思路2:比大小,最小的值一定是从数组最大值开始减小的那个值,也就是说第一次不是递增的那个值就是最小值,另一种情况是数组的第一个值,比如[1,2,2,2,2]这种情况

代码如下:

    int minNumberInRotateArray(vector<int> rotateArray) {for(int i=0; i<rotateArray.size()-1; ++i){if(rotateArray[i+1] < rotateArray[i])return rotateArray[i+1];}return rotateArray[0];}

解题思路3:二分

我们将旋转的前后部分看作两段,两段分别有序,此时我们可以试一试二分;我们将大问题不断划分为小问题,不断的缩减区间,最终得到最小值所在区间,得到最小值。

我们用双指针指向区间首尾,再求得区间中间值,如果区间中点值大于区间最右侧值,那么说明最小值在[mid,right]之间,如果小于,那么最小值在[left,mid]之间,如果相等,那就逐步缩小范围,一步一步跨过相等的那些值再进行比较

代码如下:

    int minNumberInRotateArray(vector<int> rotateArray) {int left = 0;int right = rotateArray.size() - 1;while(left < right){int mid = (left + right) / 2;if(rotateArray[mid] > rotateArray[right]){left = mid + 1;}else if(rotateArray[mid] == rotateArray[right]){right--;}else {right = mid;}}return rotateArray[left];}

比较版本号

题目链接:比较版本号

解题思路:双指针

我们用点来对版本号字符串进行分割,比较这两个版本号,直接使用双指针来进行比较,两个指针分别指向两个字符串进行比较

同时,由于前导零不参与比较,我们不知道数字前面有多少个前导零,所以还是将字符串转化为数字比较更方便

代码如下:

    int compare(string version1, string version2) {int n1 = version1.size();int n2 = version2.size();int i = 0;//version1的指针int j = 0;//version2的指针while(i < n1 || j < n2){long long num1 = 0;while(i < n1 && version1[i] != '.'){num1 = num1*10 + (version1[i]-'0');i++;}i++;long long num2 = 0;while(j < n2 && version2[j] != '.'){num2 = num2*10 + (version2[j]-'0');j++;}j++;if(num1 > num2) return 1;if(num1 < num2) return -1;}return 0;}

解题思路2:分割后比较

以点为间隔,将字符串进行分割,分割转化为数字存放进数组,再依次取出数组中的元素进行一一对比,得出结果

代码如下:

    //拆分版本号的辅助函数void splitstring(vector<int>& nums, string& version){int n = version.size(), num = 0;for(int i=0; i<n; ++i){if(version[i] == '.'){nums.push_back(num);num = 0;}else{num = num*10 + (version[i]-'0');}}nums.push_back(num);//最后一段数字}int compare(string version1, string version2) {vector<int> nums1, nums2;splitstring(nums1, version1);splitstring(nums2, version2);int n1 = nums1.size();int n2 = nums2.size();int p1 = 0, p2 = 0;for(int i=0; i<max(n1,n2); ++i){p1 = i < n1 ? nums1[i] : 0;p2 = i < n2 ? nums2[i] : 0;if(p1 > p2) return 1;if(p1 < p2) return -1;}return 0;}
http://www.qdjiajiao.com/news/11563.html

相关文章:

  • 网站建设赠送seo怎么建立网站的步骤
  • 中国城乡建设部网站可以免费打广告的网站
  • 网站建设个人广州网站排名优化报价
  • 安庆哪些做网站的公司好深圳网站制作公司
  • 旅游网站功能模块高端网站建设公司排行
  • 企飞互联网站建设网络公司网站收录提交入口
  • 中国做外贸网站有哪些网络营销理论基础有哪些
  • mip网站模板兰州seo优化入门
  • 开发一个小程序需要什么技术万能优化大师下载
  • 政府网站建设先进个人事迹搜什么关键词你都懂的
  • 做珠宝网站公司seo排名赚靠谱吗
  • 网站定制建网站定制建设设佛山网站建设十年乐云seo
  • 金昌网站seo域名查询网入口
  • wordpress网盘外链插件seo自动优化工具
  • 盘锦威旺做网站建设公司seo外链查询工具
  • 我想做个网站怎么做品牌seo是什么
  • 用vs做网站教程培训网站推荐
  • 永久网站空间怎么做好网络营销
  • 自己建站武汉网站seo推广
  • 衣服网站功能百度客户端登录
  • 网站域名是什么意思关键词查找工具
  • 网站制作难不难百度竞价推广开户多少钱
  • 做娱乐网站刷赞业务推广网站
  • 涿州网站建设推广搜索引擎优化课程
  • 做网站推广复杂吗网址搜索引擎
  • 福州最好的网站设计服务公司石家庄线上推广平台
  • 海南省建设设厅官方网站百度推广代运营
  • wordpress 微信抓取seo报告
  • 政府网站宣传推广方案上海百度公司地址
  • 无锡建站模板系统搜索引擎优化方法有哪些