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

电商网站开发教学视频宁夏网络公司排名

电商网站开发教学视频,宁夏网络公司排名,赚钱黑渠道入口,古代中国建筑网站个人主页 #xff1a; zxctscl 如有转载请先通知 题目 前言1. 75. 颜色分类1.1 分析1.2 代码 2. 912. 排序数组2.1 分析2.2 代码 3. 215. 数组中的第K个最大元素3.1 分析3.2 代码 4. LCR 159. 库存管理 III4.1 分析4.2 代码 前言 分治就是分而治之 1. 75. 颜色分类 1.1 分析… 个人主页 zxctscl 如有转载请先通知 题目 前言1. 75. 颜色分类1.1 分析1.2 代码 2. 912. 排序数组2.1 分析2.2 代码 3. 215. 数组中的第K个最大元素3.1 分析3.2 代码 4. LCR 159. 库存管理 III4.1 分析4.2 代码 前言 分治就是分而治之 1. 75. 颜色分类 1.1 分析 就是把数组中的元素分为三块0全部在左边1全部在中间2全部在右边。 这里要用到三个指针一个i指针用来遍历一个left用来存放0区域的最后侧一个用来存放2区域的最左侧。 那么区间就分成了4个 只需要判断nums[i]的值是什么然后把它放在对应区域。把数组遍历一遍就行最终i只要等于right就结束遍历此时中间已经没有要确定区域的数了。 1.2 代码 class Solution { public:void sortColors(vectorint nums) {int left-1,rightnums.size(),i0;while(iright){if(nums[i]0){swap(nums[left],nums[i]);}else if(nums[i]1)i;else{swap(nums[--right],nums[i]);}}} };2. 912. 排序数组 2.1 分析 可以先选择一个元素作为基准把比它小的元素都放在它的左边把它大的都放在右边中间放的数就和它相等这样数组就分为三个区间递归找一下左边再递归找一下右边直到数组全部被排好。 为了减少时间复杂度选取基准值的时候选取随机数。 2.2 代码 class Solution { public:vectorint sortArray(vectorint nums) {srand(time(NULL));qsort(nums,0,nums.size()-1);return nums;}void qsort(vectorint nums,int l,int r){if(lr)return;int kgetRandom(nums,l,r);int il,leftl-1,rightr1;while(iright){ if(nums[i]k){swap(nums[left],nums[i]);}else if(nums[i]k)i;else{swap(nums[--right],nums[i]);}}qsort(nums,l,left);qsort(nums,right,r);}int getRandom(vectorint nums,int left,int right){int rrand();return nums[r%(right-left1)left];} };3. 215. 数组中的第K个最大元素 3.1 分析 和上面那题一样这里也将区间分三块。 随机选取一个基准元素k根据这个基准元素将区间分三部分左边都是小于k的中间都是等于k的有边都是大于k的。 题目要求找到的是第k大元素那么在三个区域都有可以但是如果确定这个第k大元素是在某一个区域的时候那么剩下的两个区域就都不用考虑。 左边元素个数为a,中间为b右边为c。 第一种如果在c区域那么c大于等于k的因为c区域放的是是大值区域如果存在第k大的那么最有可能就在c中只需要c大于等于k就一定在。 在第二种情况找的时候就说明第一种情况不存在在中间的区域那么就直接返回k就行因为中间元素都是相等的。 第三种情况前面两种情况都不存在那么就在左边区间找右边区域和中间区域都没有那么找的就是第k-b-c大的元素。 3.2 代码 class Solution { public:int findKthLargest(vectorint nums, int k) {srand(time(NULL));return qsort(nums, 0, nums.size() - 1,k);}int qsort(vectorint nums, int l, int r,int k){if(lr)return nums[l];int keygetRandom(nums,l,r);int il,leftl-1,rightr1;while(iright){ if(nums[i]key){swap(nums[left],nums[i]);}else if(nums[i]key)i;else{swap(nums[--right],nums[i]);}}//分情况讨论int cr-right1,bright-left-1;if(ck)return qsort(nums,right,r,k);else if(bck)return key;else return qsort(nums,l,left,k-b-c); }int getRandom(vectorint nums,int left,int right){int rrand();return nums[r%(right-left1)left];} };4. LCR 159. 库存管理 III 4.1 分析 解法一 可以直接排序把前面的cnt个数重新放在一个vector表里面返回就行。 解法二用快速选择算法 就是前面所提到的随机选择基准元素k把数组分三个区间。 然后统计每一个区间的个数此时就分为三种情况 第一种情况第k小如果ak就先从第一个区间找。 第二种情况ab大于等于k那么就直接返回k就行这个区间值都是相等的。 第三种情况前面两种情况都不成立说明这个k在右边这个区域找k-a-b个元素就可以。 4.2 代码 解法一 class Solution { public:vectorint inventoryManagement(vectorint stock, int cnt) {sort(stock.begin(),stock.end());vectorint v;for(int i0;icnt;i){v.push_back(stock[i]);}return v;} };解法二 class Solution { public:vectorint inventoryManagement(vectorint stock, int cnt) {srand(time(NULL));qsort(stock, 0, stock.size() - 1,cnt);return {stock.begin(),stock.begin()cnt};}void qsort(vectorint stock, int l, int r,int k){if(lr)return;int keygetRandom(stock,l,r);int il,leftl-1,rightr1;while(iright){ if(stock[i]key) swap(stock[left],stock[i]);else if(stock[i]key)i;else swap(stock[--right],stock[i]);}//分情况讨论int aleft-l1,bright-left-1;if(ak)qsort(stock,l,left,k);else if(abk) return;else qsort(stock,right,r,k-a-b); }int getRandom(vectorintstock,int left,int right){int rrand();return stock[r%(right-left1)left];}};有问题请指出大家一起进步
http://www.pierceye.com/news/882099/

相关文章:

  • 内网建设网站聊城seo整站优化报价
  • 网站建设的可行性分析报告国际新闻最新消息2022今天
  • 网站后台上传图片做难吗?想要做个公司网站
  • 电商网站设计思维导图长春关键词推广
  • 站长工具综合查询官网wordpress置顶文章不生效
  • 手机网站 文件上传肥城网站建设公司
  • 网站开发怎么做到前后端网页设计实训报告格式
  • 军队 网站备案安卓手机软件开发平台
  • 湖北交投建设集团网站泰安网络公司行情
  • 做排版的网站绍兴网站建设专业的公司
  • 深圳专业网站建设公司济南建设网站
  • 广西建设职业技术学院网站做的比较好的二手交易网站有哪些
  • 北辰网站建设公司wordpress79元主题
  • 网站怎么绑定织梦广东网站建设968
  • ps扩展插件网站业务平台
  • 富阳设计网站广州网站设计公司
  • 演讲网站开发背景wordpress 1h 1g
  • 广州十度网络网站开发最好网站被挂马怎么办
  • 网站建设及维护费算业务宣传费网站如何做触屏滑动效果
  • 如何查询一个网站所属的主机免费可以绑定域名网站空间
  • asp.net网站开发教程品牌型网站建设
  • 海南网站网络推广建设网站需要注意的事项
  • 营销外包网站网站类别标签文本
  • 企业概况简介解答网站内容优化策略
  • ImQQ网站是怎么做的做网站把自己做死
  • 房产网站制作流程php网站开发教程网
  • 小程序商城名字谷歌优化技巧
  • 备案的时候需要网站吗seo搜索引擎优化公司
  • 网站 空间转移wordpress后台点击菜单没反应应
  • 企业网站可以自己做国外域名交易网站