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

做电影网站的程序长春建站价格

做电影网站的程序,长春建站价格,江苏省住房和城乡建设网站,server2012 wordpress提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 目录 文章目录 前言 一、有效三角形的个数#xff08;medium#xff09; 1.1、题目 1.2、讲解算法原理 1.3、编写代码 二、和为s的两个数字 2.1、题目 2.2、讲解算… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 目录 文章目录 前言 一、有效三角形的个数medium 1.1、题目 1.2、讲解算法原理 1.3、编写代码 二、和为s的两个数字 2.1、题目 2.2、讲解算法原理 2.3、编写代码 三、三数之和 3.1、题目 3.2、讲解算法原理 3.3、编写代码 四、四数之和 4.1、题目 4.2、讲解算法原理 4.3、编写代码 总结 前言 世上有两种耀眼的光芒一种是正在升起的太阳一种是正在努力学习编程的你!一个爱学编程的人。各位看官我衷心的希望这篇博客能对你们有所帮助同时也希望各位看官能对我的文章给与点评希望我们能够携手共同促进进步在编程的道路上越走越远 提示以下是本篇文章正文内容下面案例可供参考 一、有效三角形的个数medium 1.1、题目 1.2、讲解算法原理 补充数学知识给我们三个数判断是都能够构成三角形。 步骤利用单调性使用双指针算法来解决问题。 先固定最大的数在最大的数的左区间内使用双指针算法快速统计出符合要求的三元组的个数。 来举例一个区间[22344910]来说明一下情况 优化先对整个数组排序用于固定最大的数。我们根据三角形的满足条件得出的两个结论因为数组是升序的所以设a和b为最小的两边c为最大的边a b c就能构成三角形a b c便不能构成三角形。我们使用双指针的思想假设数组的下标为指针设left指针指向数组下标为0的位置设right指针指向数组中最大的数的左区间中的最大值。 拿上面的数组为例先固定最大的数为10设left为第一个2所在的位置right为9所在的位置left right大于10因为是升序所以当right不变left指向2~9之间的任意数时都符合三角形的条件因此得出的结论下标right - left的值为满足三角形的情况9所在的位置可以划掉right--。此时left为第一个2right为5最大值依旧为102 5 10不构成三角形的条件left再次判断三角形的条件重复操作直到left和right相遇最大值为10所在的情况查看完毕更新最大值。 1.3、编写代码 class Solution { public:int triangleNumber(vectorint nums) {// 先进行排序sort(nums.begin(), nums.end());// 利用双指针解决问题int ret 0, n nums.size();for(int i n-1; i 2; i--)// 固定最大值{int left 0,right i - 1;while(left right){if(nums[left] nums[right] nums[i]){ret (right - left);right--;}else{left;}}}return ret;} }; 二、和为s的两个数字 2.1、题目 2.2、讲解算法原理 利用单调性使用双指针算法解决问题。 举一个数组[2711151921]t 30为例设left指针指向2right指针指向21让两数相加来和t值(30)比较。 分为三种情况 sum tleft为2right为21相加得23 t(30)因为数组为递增顺序left和right区间的数字都比21要小因此划掉2leftsum tleft为11right为21相加得32 t(30)left和right区间的数值都比left(11)要大因此划掉21right--sum t(30)返回结果。 2.3、编写代码 class Solution { public:vectorint twoSum(vectorint price, int target) {int left 0,right price.size() - 1;while(left right){if(price[left] price[right] target){right--;}else if(price[left] price[right] target){left;}else{return {price[left],price[right]};}}// 照顾编译器return {-1,-1};} }; 三、三数之和 3.1、题目 3.2、讲解算法原理 步骤 排序固定一个数a(小优化对于下面的数组来说a 0之后不管left 和 right 两个指针指向哪里和 a 相加之后都不会等于0因此 a 0之后就可以结束了)在该固定的数a后面的区间内利用“双指针算法”快速找到两个的和等于 -a 即可。 处理细节问题 1、去重 找到一种结果之后left 和 right 指针要跳过重复元素当使用完一次双指针算法之后i 也需要跳过重复的元素避免越界。 2、不漏 找到一种结果之后不要“停”缩小区间继续寻找。 3.3、编写代码 class Solution { public:vectorvectorint threeSum(vectorint nums) {vectorvectorint ret;// 定义一个二级数组用于储存数组// 排序sort(nums.begin(), nums.end());int i 0, n nums.size();// 固定一个数afor(i 0; i n; ) // for()循环中初始化、判断和调整这三个部分都可以写为空{// 小优化if(nums[i] 0) break;int left i 1, right n - 1, target -nums[i];// target两个指针所指向的数相加固定数的负数while(left right){int sum nums[left] nums[right];if(sum target) right--;else if(sum target) left;else {ret.push_back({nums[i], nums[left], nums[right]});left, right--;// 去重操作 left rightwhile(left right nums[left] nums[left - 1]) left;while(left right nums[right] nums[right 1]) right--;}}i;// 去重操作 iwhile(i n nums[i] nums[i - 1]) i;}return ret;} }; 四、四数之和 4.1、题目 4.2、讲解算法原理 排序 双指针 依次固定一个数a在 a 后面的区间内利用三数之和找到三个数使这三个数的和等于 target -a 即可。 三数之和 依次固定一个数 b在 b 后面的区间内利用双指针找到两个数使这两个数的和等于 target - a - b 即可。 处理细节问题 1、去重 找到一种结果之后left 和 right 指针要跳过重复元素当使用完一次双指针算法之后i 也需要跳过重复的元素避免越界。 2、不漏 找到一种结果之后不要“停”缩小区间继续寻找。 4.3、编写代码 class Solution { public:vectorvectorint fourSum(vectorint nums, int target) {// 定义一个二级数组用来存放数组vectorvectorint ret;// 排序sort(nums.begin(),nums.end());// 固定一个数aint i 0,n nums.size();for(i 0; i n; ){// 固定数b --- 将四数求和转换成三数求和for(int j i 1; j n; ){// 利用双指针的算法int left j 1, right n -1; while(left right){// 这个地方用int类型有可能会超出int的范围用long longlong long aim (long long)target - nums[i] - nums[j];int sum nums[left] nums[right];if(sum aim) right--;else if(sum aim) left;else{ret.push_back({nums[i], nums[j], nums[left], nums[right]});left, right--;// 去重操作 left rightwhile(left right nums[left] nums[left-1]) left;while(left right nums[right] nums[right1]) right--;}}j;// 去重操作 jwhile(j n nums[j] nums[j-1]) j;}i;// 去重操作 iwhile(i n nums[i] nums[i-1]) i;}return ret;} }; 总结 好了本篇博客到这里就结束了如果有更好的观点请及时留言我会认真观看并学习。不积硅步无以至千里不积小流无以成江海。
http://www.hkea.cn/news/14453207/

相关文章:

  • 上海城建建设官方网站熊掌号接入wordpress
  • 做视频能赚钱的网站东莞做网站
  • 旅游网站内容创可贴设计网
  • 公司企业如何做网站110平方装修全包价格
  • 青州市网站建设上海网站设计优刻
  • 做网站需要备注号码佛山定制网页设计
  • 公司网站是怎么样的免费浏览器
  • 制作企业网站的报告为shopify做推广的网站
  • icp备案查询站长之家省级网站 开发建设 资质
  • 网站的付款链接怎么做潍坊手机网站建设公司
  • 蓝气球卡地亚手表官方网站如何做链接
  • 抖音头像的网站制作教程市场推广和销售的区别
  • 解决wordpress更改新域名后网站不能访问的问题联系我们网站模板
  • 计算机毕设网站代做沧州建设网站的公司
  • 微网站建设步骤wordpress数据库连接文件
  • 网站制作建设怎么收费做网站选大公司好还是小公司
  • 婚庆网站的设计意义黄石网站设计
  • 做图有什么网站外贸展示网站多少钱
  • 购物网站建设合同Wordpress 打开xml rpc
  • 96个html静态网站模板打包沧州网站制作多少钱
  • 网站制作专业的公司wordpress显示登录注册
  • 怎样在工商局网站上做变更中国设计师个人网站
  • pr模板免费下载网站深圳自助体检机地址
  • 网站建设分金手指专业十九淘宝网站网页图片怎么做
  • 用Off做网站wordpress分享到快手
  • 家装设计师网站wordpress关注插件
  • Python做网站 性能网页版游戏排行榜田田田田田田田田
  • 网站建站基本要素微信登录建设银行网站
  • 国家城乡住房建设部网站手机如何做微商城网站
  • 网站后台批量上传图片企业年金办法