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

网站建设实训该写哪些内容青海省住房和城乡建设厅网站

网站建设实训该写哪些内容,青海省住房和城乡建设厅网站,高端网页游戏,百度一下电脑版网页哈希 128.最长连续序列 128. 最长连续序列 - 力扣#xff08;LeetCode#xff09; 这个题要求O(n)的时间复杂度#xff0c;我一开始想的是双指针算法#xff08;因为我并不是很熟悉set容器的使用#xff09;#xff0c;但是双指针算法有小部分数据过不了。 题解给的哈…哈希 128.最长连续序列 128. 最长连续序列 - 力扣LeetCode 这个题要求O(n)的时间复杂度我一开始想的是双指针算法因为我并不是很熟悉set容器的使用但是双指针算法有小部分数据过不了。 题解给的哈希算法太妙了简单来说就是通过unordered_set来去重然后对于序列中的每一个元素num使用count操作来查找序列中是否存在num-1不存在的话说明这个元素num是连续序列的首元素最后比较得到最大值就行。 set、multiset、map、multimap 特点底层是红黑树键值有序set 、 map 键不可重复multiset 和 multimap 可重复 复杂度插入、删除、查找都为O(logN) unordered_setunordered_mapunordered_multisetunordered_multimap 特点底层实现是哈希表键值无序unordered_set 和 unordered_map 键不可重复而另外两个可以重复 复杂度插入、删除、查找平均为O(1)最坏为O(N)空间换时间 C代码  class Solution { public:int longestConsecutive(vectorint nums) {unordered_setintnum_set;for(auto num:nums)num_set.insert(num);int ans0;for(auto num:num_set){if(num_set.count(num-1)0){int curnum;int curans1;while(num_set.count(cur1)){cur1;curans1;}ansmax(ans,curans);}}return ans;} }; python代码 class Solution:def longestConsecutive(self, nums: List[int]) - int:ans0num_setset(nums)for num in num_set:if num-1 not in num_set:cur_numnumcur_ans1while cur_num1 in num_set:cur_num1cur_ans1ansmax(ans,cur_ans)return ans 双指针 283.移动零 283. 移动零 - 力扣LeetCode 方法一用双指针算法把非0的元素移动到前面去最后补0 class Solution { public:void moveZeroes(vectorint nums) {int j0;for(int i0;inums.size();i){if(nums[i]){nums[j]nums[i];}}for(int ij;inums.size();i){nums[i]0;}} }; 方法二我也不知道题解怎么想出来的 class Solution { public:void moveZeroes(vectorint nums) {int j0;for(int i0;inums.size();i){if(nums[i]){int tempnums[i];nums[i]nums[j];nums[j]temp;j;}}} }; python代码 class Solution:def moveZeroes(self, nums: List[int]) - None:Do not return anything, modify nums in-place instead.j0for i in range(len(nums)):if nums[i]:nums[j],nums[i]nums[i],nums[j]j1 11.盛最多水的容器  11. 盛最多水的容器 - 力扣LeetCode 这道题的最优解法是左右双指针法。双指针法的难点在于难于想到难以证明。 AcWing 1575. 从暴力优化到双指针明明白白图解 - AcWing 移动短的一边是因为如果移动长的一边,宽已经由短的一边固定了,长度在不断缩减,所以以后的面积只会比现在小如果移动短的一边即使长度变短了,但是宽度和长度的乘积可能会变大最后就是将最大值返回 class Solution { public:int maxArea(vectorint height) {int ans-1;int i0,jheight.size()-1;while(i!j){ansmax(ans,(j-i)*min(height[i],height[j]));if(height[i]height[j])i;else j--;}return ans;} }; python class Solution:def maxArea(self, height: List[int]) - int:ans-1i0jlen(height)-1while(i!j):ansmax(ans,(j-i)*min(height[i],height[j]))if(height[i]height[j]):i1else:j-1return ans 15.三数之和 15. 三数之和 - 力扣LeetCode 排序使用std::sort对数组进行排序。外层循环从第一个元素开始每次选择一个元素作为三元组的第一个数。内层循环使用两个指针left和right从中间开始向两边扩展寻找和为0的三元组。跳过重复元素在添加三元组到结果数组之前检查当前元素是否与前一个元素相同如果是则跳过当前元素避免重复。 定一找二变双指针 class Solution { public:vectorvectorint threeSum(vectorint nums) {std::sort(nums.begin(), nums.end());vectorvectorint ans;int n nums.size();for (int i 0; i n - 2; i) {if (i nums[i] nums[i - 1]) continue; // 跳过重复的元素int left i 1, right n - 1;while (left right) {long long sum nums[i] nums[left] nums[right];if (sum 0) {ans.push_back({nums[i], nums[left], nums[right]});while (left right nums[left] nums[left 1]) left; // 跳过重复的元素while (left right nums[right] nums[right - 1]) right--; // 跳过重复的元素left;right--;} else if (sum 0) {left;} else {right--;}}}return ans;} };
http://www.w-s-a.com/news/164342/

相关文章:

  • 网站设计简单讲解小店怎么做网站
  • 校园网站的意义wordpress去除更新
  • 网站开发用python吗常用的网页开发工具有哪些
  • 北京市住房建设投资建设网站做商城网站要哪些流程
  • seo网站改版杭州建设局官网
  • 物流网站建设策划书泰然建设网站
  • 百度做网站的费用采集发布wordpress
  • 网站运维公司有哪些防录屏网站怎么做
  • 昆明做网站seo的网站制作专业
  • 聊城制作手机网站公司wordpress 头条
  • 商城微网站模板一般电商网站做集群
  • winserver2008上用iis发布网站嵊州网站制作
  • 网站内页权重怎么查辽宁建设工程信息网怎么上传业绩
  • 丰都网站建设价格镇江网站制作费用
  • app手机网站建设黄网站建设定制开发服务
  • 百度网盘app下载徐州优化网站建设
  • 附近网站电脑培训班展台设计方案介绍
  • 河南便宜网站建设价格低上海高端室内设计
  • 保险网站有哪些平台wordpress会员vip购买扩展
  • 网站怎么做图片转换广州车陂网站建设公司
  • 下载flash网站网站设计书的结构
  • 水利建设公共服务平台网站放心网络营销定制
  • 设计网站过程wordpress+分页静态
  • 临海网站制作好了如何上线如果安装wordpress
  • 长沙 学校网站建设网站制作价格上海
  • 九江网站推广徽hyhyk1国家住房部和城乡建设部 网站首页
  • 阿克苏网站建设咨询动漫设计与制作属于什么大类
  • 网站编辑做多久可以升职wordpress版权修改
  • 网站开发维护成本计算国外外贸平台
  • 简单的招聘网站怎么做购物网站功能报价