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

做信息发布类网站seo外链是什么意思

做信息发布类网站,seo外链是什么意思,主流网站开发技术,网站的footer怎么做如有缺漏谬误&#xff0c;还请批评指正。 1.只出现一次的数字 利用异或运算相同得0的特点。所有出现过两次的数字都会在异或运算累加过程中被抵消。、 class Solution { public:int singleNumber(vector<int>& nums) {int res0;for(int i0;i<nums.size();i) re…

如有缺漏谬误,还请批评指正。

1.只出现一次的数字

利用异或运算相同得0的特点。所有出现过两次的数字都会在异或运算累加过程中被抵消。、

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

2.多数元素

        随机取数,然后判断是否是答案。因为众数被选中的概率大于50%,所以时间复杂度虽然理论上可能出现O(∞)的情况,但实际上可以达到O(n)。

class Solution {
public:int majorityElement(vector<int>& nums) {while(true){int candidate=nums[rand()%nums.size()];int count=0;for(int i=0;i<nums.size();i++){if(nums[i]==candidate){count++;if (count>nums.size()/2) return candidate;}}}return -1;}
};

3.颜色分类

        经典的“荷兰国旗”问题。

(1)单指针解法

class Solution {
public:void sortColors(vector<int>& nums) {int i=0;for(int j=0;j<nums.size();j++){if(nums[j]==0){swap(nums[i],nums[j]);i++;}}for(int j=i;j<nums.size();j++){if(nums[j]==1){swap(nums[i],nums[j]);i++;}}}
};

(2)双指针解法

        比单指针少了一趟遍历。

①两个同向指针分别记录0的交换位置和1的交换位置。

class Solution {
public:void sortColors(vector<int>& nums) {int n=nums.size();int ptr0=0,ptr1=0;for(int i=0;i<n;i++){if(nums[i]==0){swap(nums[i],nums[ptr0++]);if(ptr1<ptr0) ptr1++;}if(nums[i]==1) swap(nums[i],nums[ptr1++]);}}
};

②左右指针分别记录0的交换位置和2的交换位置。 

class Solution {
public:void sortColors(vector<int>& nums) {int n = nums.size();int r0=0,l2=n-1;  // r0: 0的右边界,l2:2的左边界for(int i=0;i<=l2;i++){       // 必须包含等于,因为nums[r]可能还没处理if(nums[i]==0) swap(nums[i],nums[r0++]);  // 0交换到左边,r0右移//换完后的理想状态:换过后nums[i]是1(1处在0的右边界和2的左边界之间)else if(nums[i]==2){swap(nums[i],nums[l2--]);  // 2交换到右边,l2左移if(nums[i]!=1) i--;  //num[i]==0的情况:2和0换,换过后的0需再换一遍到左边界//num[i]==2的情况:2和2换,换过后的2需重新处理}}}
};

4.下一个排列

三个关键步骤:

  • 找到 ii是第一个破坏从后向前升序的位置,这意味着nums[i]可以增大以得到更大的排列。

  • 找到 jnums[j] 是 i 之后比 nums[i] 大的最小数,交换后 nums[i]增大,但 i 之后的部分仍然降序。

  • 反转:反转 i+1之后的部分使其升序,这样这部分最小,确保了整个排列是“下一个”排列。

class Solution {
public:void nextPermutation(vector<int>& nums) {int n=nums.size();int i=n-2;// 1. 找到第一个不符合逆序升的nums[i]while(i>=0&&nums[i]>=nums[i+1]) i--;// 2. 再找第一个比nums[i]大的nums[j],swap两个数if(i>=0){int j=n-1;while(j>=0&&nums[j]<=nums[i]) j--;swap(nums[i], nums[j]);}// 3.反转 i+1 到末尾的部分(使其升序)reverse(nums.begin()+i+1, nums.end());}
};

5.多数问题

核心思想:将数组视为链表,并利用快慢指针检测环。

相遇的地点是环的入口(即重复数字):推导如下。

class Solution {
public:int findDuplicate(vector<int>& nums) {// 初始化快慢指针,初始位置在数组的起始位置(索引0)int slow=0,fast=0;// 第一阶段:检测环的存在(Floyd's Tortoise and Hare算法)do{slow=nums[slow];       // 慢指针每次移动一步fast=nums[nums[fast]]; // 快指针每次移动两步} while (slow!=fast);      // 当快慢指针相遇时,说明存在环// 第二阶段:找到环的入口(即重复的数字)slow=0; // 将慢指针重置到起点while(slow!=fast){slow=nums[slow]; // 慢指针每次移动一步fast=nums[fast]; // 快指针每次移动一步}// 最终相遇点就是重复的数字return slow;}
};

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

相关文章:

  • 精品网站建设费用磐石网络站长网站大全
  • 物流网站模板广告商对接平台
  • 网站开发需求问卷品牌关键词排名优化怎么做
  • 360如何做免费的网站网络营销的营销方式是什么
  • 自己免费制作app平台seo在线短视频发布页
  • 企业核名查询系统是哪个搜索引擎优化的方法有哪些?
  • 怎么用微信做网站常德网站优化公司
  • 秦皇岛网站建设公司营销软文模板
  • 做网站有没有受骗过今日头条普通版
  • 龙岗 网站建设公司网址怎么注册
  • 中国卫生人才网石家庄seo外包的公司
  • piwigo wordpressseo网络营销推广
  • 网站的提示公告做滚动字幕深圳网络推广建站
  • 网站建设报价百度站长工具app
  • 湖州网站网站建设足球比赛直播2021欧冠决赛
  • 网站的轮播图怎么做短视频营销案例
  • 合肥网站建设制作公司哪里有网站推广优化
  • 郑州网站建设微信小程序建站工具有哪些
  • 网站外链建设工作总结深圳龙岗区优化防控措施
  • 天津做网站建设哪里有学电脑培训班
  • 网站建设客源在哪里找百度极速版推广员怎么申请
  • 服务器安全模式怎么进天津seo代理商
  • 企业现在有必要做网站吗西安网站seo诊断
  • 怎么做手机版网站百度最新秒收录方法2021
  • 永久3e38cos无风险优化师培训
  • wordpress essential 整站优化多少钱
  • 娃哈哈网站建设策划书seo外包公司费用
  • 做茶叶网站简述seo
  • 西安未央区网站建设百度搜索网
  • 免费b站在线人数在哪看西安seo网站关键词优化