一、1两数之和

二、15三数之和

C++ Soution 1:

 class Solution {
 public:
     vector<vector<int>> threeSum(vector<int>& nums)
     {
         vector<vector<int>> res;
         sort(nums.begin(), nums.end());
         ; k < nums.size(); ++k)
         {
             )
                 break;
              && nums[k] == nums[k - ])
                 continue;
              - nums[k];
             , j = nums.size() - ;
             while (i < j)
             {
                 if (nums[i] + nums[j] == target)
                 {
                     res.push_back({nums[k], nums[i], nums[j]});
                     ])
                         ++i;
                     ])
                         --j;
                     ++i;
                     --j;
                 }
                 else if (nums[i] + nums[j] < target)
                     ++i;
                 else
                     --j;
             }
         }
         return res;
     }
 };

  

三、16最接近的三数之和

题目:3Sum Closest

C++ Soution 1:

 class Solution {
 public:
     int threeSumClosest(vector<int>& nums, int target)
     {
         ] + nums[] + nums[];
         int diff = abs(closest - target);
         sort(nums.begin(), nums.end());
         ; i < nums.size() - ; ++i)
         {
             , right = nums.size() - ;
             while (left < right)
             {
                 int sum = nums[i] + nums[left] + nums[right];
                 int newDiff = abs(sum - target);
                 if (diff > newDiff)
                 {
                     diff = newDiff;
                     closest = sum;
                 }
                 if (sum < target)
                     ++left;
                 else
                     --right;
             }
         }
         return closest;
     }
 };

四、18四数之和

题目:4Sum

C++ Soution 1:

 class Solution {
 public:
     vector<vector<int>> fourSum(vector<int>& nums, int target)
     {
         vector<vector<int>> res;
         sort(nums.begin(), nums.end());
         if(nums.empty())
             return {};
         ; k < nums.size(); ++k)
         {
              && nums[k] == nums[k-])
                 continue;
             ; m < nums.size(); ++m)
             {
                 int sum = target - nums[k] -nums[m];
                  && nums[m] == nums[m -])
                     continue;
                 , j = nums.size() -;
                 while(i < j)
                 {
                     if(sum == nums[i] + nums[j])
                     {
                         res.push_back({nums[k], nums[m], nums[i], nums[j]});
                         ])
                             ++i;
                         ])
                             --j;
                         ++i;
                         --j;
                     }
                     else if(sum > nums[i] + nums[j])
                         ++i;
                     else
                         --j;
                 }
             }
         }
         return res;
     }
 };

五. 平方数之和

题目:633. Sum of Square Numbers

C++ Soution 1:双指针

 class Solution {
 public:
     bool judgeSquareSum(int c)
     {
         ;
         long long high = sqrt(c);
         while (low < high)
         {
             if (low*low + high * high == c)
                 return true;
             else if (low*low + high * high > c)
                 high--;
             else
                 low++;
         }
         return false;
     }
 };

367. 有效的完全平方数

题目:367. Valid Perfect Square

C++ Soution 1:

 class Solution {
 public:
     bool isPerfectSquare(int num)
     {
         ) return true;

         , right = num;//高低指针
         long long mid;
         while (left <= right)
         {
             mid = (left + right) / ;
             long long target = mid  * mid ; //防止超出int
             if (target == num)
                 return true;
             else if (target > num)
                 right = mid - ;  //大了,就降低高指针
             else
                 left = mid + ; //小了,升高低指针
         }
         return false;
     }
 };

50. Pow(x, n)

题目:Pow(x, n)

C++ Soution 1:

分析:迭代的解法,我们让i初始化为n,然后看i是否是2的倍数,是的话x乘以自己,否则res乘以x,i每次循环缩小一半,直到为0停止循环。最后看n的正负,如果为负,返回其倒数

 class Solution {
     public:
     double myPow(double x, int n)
     {
         double res = 1.0;
         ; i /= )
         {
              != )
                 res *= x;
             x *= x;
         }
          ?  / res : res;
     }
 };

【Leetcode | 5】求和问题的更多相关文章

  1. leetcode 二进制求和 python

    class Solution: def addBinary(self, a, b): """ :type a: str :type b: str :rtype: str ...

  2. 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)

    转自  http://tech-wonderland.net/blog/summary-of-ksum-problems.html 前言: 做过leetcode的人都知道, 里面有2sum, 3sum ...

  3. [LeetCode] Design Excel Sum Formula 设计Excel表格求和公式

    Your task is to design the basic function of Excel and implement the function of sum formula. Specif ...

  4. (leetcode:选择不相邻元素,求和最大问题):打家劫舍(DP:198/213/337)

    题型:从数组中选择不相邻元素,求和最大 (1)对于数组中的每个元素,都存在两种可能性:(1)选择(2)不选择,所以对于这类问题,暴力方法(递归思路)的时间复杂度为:O(2^n): (2)递归思路中往往 ...

  5. LeetCode 40 Combination Sum II(数组中求和等于target的所有组合)

    题目链接:https://leetcode.com/problems/combination-sum-ii/?tab=Description   给定数组,数组中的元素均为正数,target也是正数. ...

  6. LeetCode 39 Combination Sum(满足求和等于target的所有组合)

    题目链接: https://leetcode.com/problems/combination-sum/?tab=Description   Problem: 给定数组并且给定一个target,求出所 ...

  7. LeetCode总结 -- 树的求和篇

    树的求和属于树的题目中比較常见的,由于能够有几种变体,灵活度比較高,也能够考察到对于树的数据结构和递归的理解. 一般来说这些题目就不用考虑非递归的解法了(尽管事实上道理是跟LeetCode总结 -- ...

  8. LeetCode:二进制求和【67】

    LeetCode:二进制求和[67] 题目描述 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11" ...

  9. LeetCode:范围求和||【598】

    LeetCode:范围求和||[598] 题目描述 给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作. 操作用二维数组表示,其中的每个操作用一个含有两个正整数 a ...

  10. LeetCode解题报告--2Sum, 3Sum, 4Sum, K Sum求和问题总结

    前言: 这几天在做LeetCode 里面有2sum, 3sum(closest), 4sum等问题, 这类问题是典型的递归思路解题.该这类问题的关键在于,在进行求和求解前,要先排序Arrays.sor ...

随机推荐

  1. kali linux 安装 matlab2016Rb

    分享安装包: https://pan.baidu.com/s/1hrBd3Li 密码:u9q3 由于Linux版的分为两个镜像,需要挂载后合并: mount R2016b_glnxa64_dvd1.i ...

  2. JavaWeb - Servlet教程

    http://www.runoob.com/servlet/servlet-tutorial.html

  3. Linux安装JDK(rpm)

    我以JDK1.8为例 ⒈下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...

  4. linux syscall 详解【转】

    转自:https://blog.csdn.net/feixin620/article/details/78416560 引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及ap ...

  5. C++代码风格指南总结

    C++代码风格指南 代码风格的重要性 今天我收到thougthwork笔试没过的消息, 心里确实很难受, 然后师兄说我代码写得很糟糕 细想一下, 我写代码确实是随心所欲, 并没有遵循什么规范; 所以现 ...

  6. web@css高级选择器(after,befor用法),基本css样式

    1.高阶选择器:子代后代,相邻通用兄弟,交集并集,属性,伪类,伪元素子代后代选择器 div>p{}  div p{}相邻通用兄弟 div+p{}  div~p{}理解:div同学的同桌p  di ...

  7. PHP IDE选择标准

    2017年11月17日09:35:01 这里记录一下PHP IDE的选择标准 1.  是否有错误提示, 对于一些 `缺少分号`, `花括号不配对`, `变量未定义就使用`等待的提示是要有的 2. 代码 ...

  8. UpdatePanel1里面使用FileUpload控件

    最近做项目过程中,遇到了UpdatePanel1里面放了一个FileUpload控件,结果从后台就获取不到上传的文件了,找了好久才找到原因.原因: 加了红色部分后立马获取到了.

  9. CSS 重置默认样式

    1. 概述 1.1 说明 css重置样式主要是为了让各个浏览器的CSS样式有一个统一的基准,使HTML元素样式在跨浏览器时有一致性的效果. 备注:浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的 ...

  10. Netty沾包和拆包

    1.连着发两条,会沾在一起,这就是沾包 2.包尾添加特殊分隔符,接收方通过特殊分隔符切分报文区分,这就是拆包 在ChatServerInit类.ChatClientInit类分别加入以下代码 Byte ...