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

电商货源网站大全wordpress忘记后台密码

电商货源网站大全,wordpress忘记后台密码,线上网站建设需求,网站改版提交给百度Day07 454.四数相加II383. 赎金信15. 三数之和18. 四数之和 454.四数相加II 题目链接:454.四数相加II 寻找两个数组之和,是否与另外两个数组之和有特定的关系。 因为数值可能跨度太大,选择使用下标表示为对应的数值大小,会很浪费…

Day07

    • 454.四数相加II
    • 383. 赎金信
    • 15. 三数之和
    • 18. 四数之和

454.四数相加II

题目链接:454.四数相加II
寻找两个数组之和,是否与另外两个数组之和有特定的关系。
因为数值可能跨度太大,选择使用下标表示为对应的数值大小,会很浪费内存空间。
target减去后两个数组之和的结果,是否存在与前两个数组之和组成的集合中。又要返回满足题意的次数,因此决定使用map而不是set

class Solution {
public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {unordered_map<int, int> map;for (auto& i: nums1) {for (auto& j: nums2) {map[i + j]++;//nums1 nums2之和存入map}}int cnt = 0;for (auto& i: nums3) {for (auto& j: nums4) {int target = 0 - (i + j);//查找target是否存在与map中if (map.find(target) != map.end()) {cnt += map[target];//target对应存在多少个,都加入}}}return cnt;}
};

383. 赎金信

题目链接:383. 赎金信
判断ransomNote中的字符是否出现在magazine中。

class Solution {
public:bool canConstruct(string ransomNote, string magazine) {if (ransomNote.size() > magazine.size()) {return false;}int record['z' - 'A' + 1] = {};//个数别查错了。+1for (auto& i : magazine) {record[i - 'A']++;}for (auto& i : ransomNote) {record[i - 'A']--;//出现就直接返回,不用在该循环之后再遍历recordif (record[i - 'A'] < 0) return false;}return true;}
};

15. 三数之和

题目链接:15. 三数之和
两个数之和,第三个数与目标值运算之后,是否出现在两个数之和中。
但是,时间复杂度为 O ( n 2 ) O(n^2) O(n2),且要去重操作。
选择使用双指针,注意去重操作。

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int> > ret;sort(nums.begin(), nums.end());for (int i = 0; i < nums.size(); i++) {if (nums[i] > 0) break;//剪枝。没有不影响结果//i指针的去重if (i > 0 && nums[i] == nums[i - 1]) continue;int left = i + 1, right = nums.size() - 1;while (left < right) {if (nums[i] + nums[left] + nums[right] > 0) {right--;} else if (nums[i] + nums[left] + nums[right] < 0) {left++;} else {ret.push_back(vector<int>{nums[i], nums[left], nums[right]});//left和right指针的去重。移动时,注意满足边界条件while (left < right && nums[left] == nums[left + 1])left++;while (left < right && nums[right] == nums[right - 1])right--;left++;right--;}}}return ret;}
};

其中

while (left < right && nums[left] == nums[left + 1]) left++;
while (left < right && nums[right] == nums[right - 1]) right--;left++;
right--;

前两行和后两行顺序不能调换。


18. 四数之和

题目链接: 18. 四数之和
三数之和再多套一个遍历。不用哈希理由三数之和。
注意剪枝条件不同于三数之和,因为三数的target是0

class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<vector<int>> ret;sort(nums.begin(), nums.end());//排序for (int k = 0; k < nums.size(); k++) {if (nums[k] > target && nums[k] >= 0) break;//剪枝if (k > 0 && nums[k] == nums[k - 1]) continue;//k去重for (int i = k + 1; i < nums.size(); i++) {if (nums[k] + nums[i] > target && nums[k] + nums[i] >= 0) break;//剪枝。k+i是一个整体if (i > k + 1 && nums[i] == nums[i - 1]) continue;//i去重int left = i + 1, right = nums.size() - 1;while (left < right) {if ((long) nums[k] + nums[i] + nums[left] + nums[right] > target) right--;else if ((long) nums[k] + nums[i] + nums[left] + nums[right] < target) left++;else {ret.push_back(vector<int>{nums[k], nums[i], nums[left], nums[right]});while (left < right && nums[left] == nums[left + 1]) left++;//left去重while (left < right && nums[right] == nums[right - 1]) right--;//right去重right--;left++;}}}}return ret;}
};
if ((long) nums[k] + nums[i] + nums[left] + nums[right] > target)

long是因为nums数组中的元素超过int范围,导致溢出了。

http://www.yayakq.cn/news/51292/

相关文章:

  • 宁波企业建站系统我要建企业营销型网站
  • 金山做网站的公司宁波网站建设价格合理
  • 曲靖高端网站制作给卖假性药的做网站一般要判多久
  • 渝中网站建设在一个网站下建设多个子网站
  • 外贸网站建设网络公司网络规划设计师通过率多少
  • 南山优化网站建设案例凡科快图好用吗
  • 北京企业网站推广哪家公司好做网站的工作好做吗
  • 建筑企业网站有哪些聊城做网站的公司流程
  • 网站下的源代码和自己做的区别网站的定位与功能
  • 浙江创都建设有限公司网站实战营销型网站建设
  • 常德企业网站建设网站建设长春
  • 宝山网站建设推广做亚马逊网站需要租办公室吗
  • 商业网站网址什么是网页设计规范
  • 河西网站建设开发网站建设得步骤
  • 自主建设网站的意义网站建设销售找客源
  • 河北省唐山市建设规划局的网站成都到西安需要核酸检测吗
  • 兰州网站建设hiteeth网店运营计划书
  • 电子商务网站建设实训报告总结网页视频下载软件哪个好
  • 网站开发做美工石家庄手机模板建站
  • 犀牛云做网站一年多少钱北京页面设计的培训
  • 做外贸找工厂货源网站营销策划方案步骤
  • 网站设计专业知识技能怎么开小程序店铺
  • 深圳企业网站制作哪个艾米艾园wordpress
  • 广州市建设交易中心网站首页wordpress导出工具
  • 中国贸易网站有哪些南通做阿里巴巴网站的单位
  • com域名便宜关键词seo是什么
  • 免费行情网站app下载大全学校网站建设项目可行性分析报告
  • 邮件表头图片网站网站开发团队排行榜
  • 福州正规网站建设公司报价宜春公司做网站
  • 最优惠的手机网站建设wordpress流量统计