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

vs2010 网站开发教程seo整站优化哪家好

vs2010 网站开发教程,seo整站优化哪家好,手机开发网站工具,电脑网站显示安全证书有问题怎么解决题目 给定一个包含 n 个整数的数组 nums 和一个目标值 target#xff0c;判断 nums 中是否存在四个元素 a#xff0c;b#xff0c;c 和 d #xff0c;使得 a b c d 的值与 target 相等#xff1f;找出所有满足条件且不重复的四元组。 注意#xff1a;答案中不可以包…题目 给定一个包含 n 个整数的数组 nums 和一个目标值 target判断 nums 中是否存在四个元素 abc 和 d 使得 a b c d 的值与 target 相等找出所有满足条件且不重复的四元组。 注意答案中不可以包含重复的四元组。 示例 给定数组 nums [1, 0, -1, 0, -2, 2]和 target 0。 满足要求的四元组集合为 [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ] 思路  四数之和和代码随想录阅读笔记-哈希表【三数之和】-CSDN博客是一个思路都是使用双指针法, 基本解法就是在代码随想录阅读笔记-哈希表【三数之和】-CSDN博客的基础上再套一层for循环。但是有一些细节需要注意例如 不要判断nums[k] target 就返回了三数之和 可以通过 nums[i] 0 就返回了因为 0 已经是确定的数了四数之和这道题目 target是任意值。比如数组是[-4, -3, -2, -1]target是-10不能因为-4 -10而跳过。但是我们依旧可以去做剪枝逻辑变成nums[i] target (nums[i] 0 || target 0)就可以了。 代码随想录阅读笔记-哈希表【三数之和】-CSDN博客的双指针解法是一层for循环num[i]为确定值然后循环内有left和right下标作为双指针找到nums[i] nums[left] nums[right] 0。 四数之和的双指针解法是两层for循环nums[k] nums[i]为确定值依然是循环内有left和right下标作为双指针找出nums[k] nums[i] nums[left] nums[right] target的情况三数之和的时间复杂度是O(n^2)四数之和的时间复杂度是O(n^3) 。那么一样的道理五数之和、六数之和等等都采用这种解法。 对于代码随想录阅读笔记-哈希表【三数之和】-CSDN博客双指针法就是将原本暴力O(n^3)的解法降为O(n^2)的解法四数之和的双指针解法就是将原本暴力O(n^4)的解法降为O(n^3)的解法。 之前博客的经典题目代码随想录阅读笔记-哈希表【四数相加II】-CSDN博客相对于本题简单很多因为本题是要求在一个集合中找出四个数相加等于target同时四元组不能重复。而​​​​​​​代码随想录阅读笔记-哈希表【四数相加II】-CSDN博客是四个独立的数组只要找到A[i] B[j] C[k] D[l] 0就可以不用考虑有重复的四个元素相加等于0的情况所以相对于本题还是简单了不少。 我们来回顾一下几道题目使用了双指针法。 双指针法将时间复杂度O(n^2)的解法优化为 O(n)的解法。也就是降一个数量级除了本题还有之前写过的题目如下 代码随想录阅读笔记-数组【移除元素】-CSDN博客代码随想录阅读笔记-哈希表【三数之和】-CSDN博客 链表相关双指针题目 代码随想录阅读笔记-链表【反转链表】-CSDN博客代码随想录阅读笔记-链表【删除链表倒数第n节点】-CSDN博客代码随想录阅读笔记-链表【链表相交】-CSDN博客代码随想录阅读笔记-链表【环形链表II】-CSDN博客 双指针法在字符串题目中还有很多应用后面还会介绍到。 C代码 class Solution { public:vectorvectorint fourSum(vectorint nums, int target) {vectorvectorint result;sort(nums.begin(), nums.end());for (int k 0; k nums.size(); k) {// 剪枝处理if (nums[k] target nums[k] 0) {break; // 这里使用break统一通过最后的return返回}// 对nums[k]去重if (k 0 nums[k] nums[k - 1]) {continue;}for (int i k 1; i nums.size(); i) {// 2级剪枝处理if (nums[k] nums[i] target nums[k] nums[i] 0) {break;}// 对nums[i]去重if (i k 1 nums[i] nums[i - 1]) {continue;}int left i 1;int right nums.size() - 1;while (right left) {// nums[k] nums[i] nums[left] nums[right] target 会溢出if ((long) nums[k] nums[i] nums[left] nums[right] target) {right--;// nums[k] nums[i] nums[left] nums[right] target 会溢出} else if ((long) nums[k] nums[i] nums[left] nums[right] target) {left;} else {result.push_back(vectorint{nums[k], nums[i], nums[left], nums[right]});// 对nums[left]和nums[right]去重while (right left nums[right] nums[right - 1]) right--;while (right left nums[left] nums[left 1]) left;// 找到答案时双指针同时收缩right--;left;}}}}return result;} }; 时间复杂度: O(n^3)空间复杂度: O(1) 优化二级剪枝的部分 if (nums[k] nums[i] target nums[k] nums[i] 0) {break; }可以优化为 if (nums[k] nums[i] target nums[i] 0) {break; }因为只要 nums[k] nums[i] target那么想要符合题意的唯一条件就是此时nums[k] 和 nums[i]都为负数所以需要nums[i]后面还有负数才能使和变小进而去接近target那么 nums[i] 后面的数都是正数的话就一定 不符合条件了。
http://www.hkea.cn/news/14354309/

相关文章:

  • 北京网站建设哪家便宜企业网站建设源码HTML
  • 写作网站排名两个域名指向同一个网站怎么做
  • 黄陂网站建设wordpress第三方评论
  • 做苗木网站wordpress删除全部评论
  • 建设银行四川分行网站做网站用买服务器码
  • 外贸网站建设优化可以做物理试验的网站有哪些
  • 亚马逊 怎么做国外网站怎样做txt电子书下载网站
  • 南京网站设计公司大全网站支付接口怎么做
  • 大连 网站兰州最好的网站开发公司
  • 网站推广上首页策划案格式模板和范文
  • 建设网站上申请劳务资质云主机做网站
  • 企业网站建设的目的有()网站建设投放广告
  • 牛天下网站建设自己免费怎么做网站
  • 国外外贸网站大全家装设计费用怎么收费
  • 怎样让百度搜索到自己的网站女神异闻录3剧场版
  • 购物网站名字大全wordpress客户端连接不上
  • 沈阳 网站制作报价国外做任务网站有哪些方面
  • asp.net网站设计如何做区块链网站
  • 品牌网站建设搭建网站跳出的广告是怎么做的
  • 自己有了域名 怎么做网站做测评的网站
  • 长沙网站seo源头厂家建站公司最喜欢的网站
  • 辽宁鞍山建设工程信息网站福州公众号小程序制作公司
  • 界面网站的风格宁波企业网站制作哪家好
  • 网站制作问题 图片版权广州建设网站制作
  • 国内高端网站定制网站设计要如何做支付功能
  • 网站解封网页游戏大全网址
  • 企业网站的网络营销如何建设公司企业安全文化
  • 桂林有名网站制作公司全球电子商务网站排名
  • 服装厂家东莞网站建设成都平台公司
  • 网页制作与设计站点应该怎么建新媒体运营公司排行榜