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

甘肃精神文明建设网站联科网站建设

甘肃精神文明建设网站,联科网站建设,石油化工工程建设人才招聘网站,阿里企业网站托管Day07 454.四数相加II383. 赎金信15. 三数之和18. 四数之和 454.四数相加II 题目链接#xff1a;454.四数相加II 寻找两个数组之和#xff0c;是否与另外两个数组之和有特定的关系。 因为数值可能跨度太大#xff0c;选择使用下标表示为对应的数值大小#xff0c;会很浪费… Day07 454.四数相加II383. 赎金信15. 三数之和18. 四数之和 454.四数相加II 题目链接454.四数相加II 寻找两个数组之和是否与另外两个数组之和有特定的关系。 因为数值可能跨度太大选择使用下标表示为对应的数值大小会很浪费内存空间。 target减去后两个数组之和的结果是否存在与前两个数组之和组成的集合中。又要返回满足题意的次数因此决定使用map而不是set。 class Solution { public:int fourSumCount(vectorint nums1, vectorint nums2, vectorint nums3, vectorint nums4) {unordered_mapint, 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:vectorvectorint threeSum(vectorint nums) {vectorvectorint 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(vectorint{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:vectorvectorint fourSum(vectorint nums, int target) {vectorvectorint 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;//剪枝。ki是一个整体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(vectorint{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.hkea.cn/news/14365020/

相关文章:

  • 百度不收录手机网站吗佛山seo优化外包
  • 备案的网站转移ui界面设计培训班
  • 湖南城乡和建设厅网站wordpress 优惠插件
  • 360做网站的苏州建设交通高等职业技术学院
  • 适合个人做的网站佛山网站优化体验
  • 企业网站最重要的访问对象是营销导向企业网站策划
  • 公司网站二维码怎么做宣传网站建设的步骤
  • 做网站主要注意些什么怎么编写网站代码
  • 在线网站优化wordpress php5.3.5访问慢
  • 淘宝店的网站建设分析wordpress模板淘点金
  • 芜湖网站清远市企业网站seo
  • 一个网站用几个域名优质的网站建设
  • 清河做网站多少钱杭州网站设计的公司
  • 廊坊网站建设优化wordpress 双主页
  • 国外素材网站开网店 建网站要钱吗
  • 松江附近做网站网站运营推广方法总结
  • 威海企业做网站哪家好医疗软件公司排名
  • 山西大同专业网站建设制作价格赣州章贡区地图
  • 做网站的那些高清图上哪里找重庆公司注册流程
  • 东莞网站建设 少儿托管手机app快速开发平台
  • 西安做网站报价西安网站开发建设
  • 用asp做网站有哪些功能fedora做网站服务器
  • 中国物流网站外国知名个人网站
  • 如何建设网站zy258住房和城乡建设管理局官网
  • 网站建设 考核指标做视频网站视频放在哪里
  • 乌尔禾区做网站哪里好专业建站公司联系方式
  • 网站建设广告费 科目网站开发团队奖惩
  • 怎样用网站做单笔外贸网站建设维护公司资质
  • 电商公司网站建设流程移动端网站建设重点有哪些
  • 玻璃钢格栅无锡网站建设公司网站怎么写