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

建设众筹类网站网页设计ui设计培训

建设众筹类网站,网页设计ui设计培训,设计一个商务网站,多用户分销系统开发454.四数相加II 454.四数相加II介绍给你四个整数数组 nums1、nums2、nums3 和 nums4 #xff0c;数组长度都是 n #xff0c;请你计算有多少个元组 (i, j, k, l) 能满足#xff1a;思路因为是存放在数组里不同位置的元素#xff0c;因此不需要考虑去重的操作#xff0c;而…454.四数相加II 454.四数相加II介绍给你四个整数数组 nums1、nums2、nums3 和 nums4 数组长度都是 n 请你计算有多少个元组 (i, j, k, l) 能满足思路因为是存放在数组里不同位置的元素因此不需要考虑去重的操作而四数之和是在一个数组里找出四个元素相加。在一个集合里判断一个元素有没有出现过需要考虑使用哈希法。首先遍历A和B数组把两个数组中的值ab放入到一个集合里。然后再遍历C和D数组去判断集合中有没有想要的元素【-cd】使用怎样的哈希结构若使用数组做哈希结构而n可能很大不妥。我们不光要统计ab还要统计ab出现过的次数因此可以使用map。若-(cd)等于map中的key值时计数就是()value次。AB中有3个等于-(cd)的abunordered_map(int,int) map; for(i0;in;i){//Afor(j0;jn;j){//Bmap[ab];//c中是如果key值ab有的话直接就value,没有的话将ab insert到map中同时value} } for(c:C){for(d:D){target 0-(cd);if(map.find(target)!map.end()) //如果map中找到了targetcount count map[target];//map中Key所对应的数值} } return count;代码class Solution { public:int fourSumCount(vectorint nums1, vectorint nums2, vectorint nums3, vectorint nums4) {std:unordered_mapint,int map;int count 0;for(int i:nums1){for(int j:nums2){map[ij];}}for(int i:nums3){for(int j:nums4){int target -(ij);if(map.find(target)!map.end());{count countmap[target];}}}return count;}};383. 赎金信383.赎金信介绍给你两个字符串ransomNote 和 magazine 判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以返回 true 否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。思路该题目说明是—为了不暴露赎金信字迹要从杂志上搜索各个需要的字母组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。可以仿照昨天的思路先将magazine中的字符逐个遍历送入到数组中数组中的值就是每个字符的个数。然后再遍历ransom中的字符如果在数组中对应位置的值不为0说明magazine中有ransom中遍历到当前位置的字符那么则将数组中的值--。代码class Solution { public:bool canConstruct(string ransomNote, string magazine) {int record[26] {0};if(ransomNote.size()magazine.size()){return false;}for(int i0;imagazine.size();i){record[magazine[i]-a];}for(int j0;jransomNote.size();j){if(record[ransomNote[j]-a]0) return false;else{record[ransomNote[j]-a]--;}}return true;} };15. 三数之和15.三数之和介绍思路使用哈希法较为复杂因为需要去重。使用双指针法来求解该题。首先要对数组进行排序该题返回的是数组中的值而不是下标因此可以排序。首先固定ileft在i右边right在最右边。若nums[i]nums[left]nums[right]0说明值是大的那么让right左移一位。right--若nums[i]nums[left]nums[right]0说明值是小的那么让left右移一位。left若nums[i]nums[left]nums[right]0获得结果nums[i]nums[left]nums[right]细节去重result sort(nums) //abc for(i0;inums.size();i){if(nums[i]0)    return;if(i0nums[i]nums[i-1]) //对a进行去重conitue;left i1;right nums.size()-1while(rightleft){if(nums[i]nums[left]nums[right]0) right--;else if(nums[i]nums[left]nums[right]0) left;else {result.push(nums[i]nums[left]nums[right])//至少收获1个符合条件的再对b和c去重if(right left nums[right] nums[right - 1]) right--; if(right left nums[left] nums[left 1]) left;}}   }代码class Solution { public:vectorvectorint threeSum(vectorint nums) {vectorvectorint result;sort(nums.begin(),nums.end());for(int i0;inums.size();i){if(nums[i]0) {return result;}if(i0nums[i]nums[i-1]) {continue;}int left i1;int right nums.size()-1;while(right left){if(nums[i]nums[left]nums[right]0){right--;}else if(nums[i]nums[left]nums[right]0){left--;}else{result.push_back(vectorint{nums[i],nums[left],nums[right]});while(right left nums[right] nums[right - 1]){right--; }while(right left nums[left] nums[left 1]){left;} }}}return result;} };18. 四数之和 18.四数之和介绍给你一个由 n 个整数组成的数组 nums 和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] 若两个四元组元素一一对应则认为两个四元组重复0 a, b, c, d na、b、c 和 d 互不相同nums[a] nums[b] nums[c] nums[d] target思路延续了三数之和的思路。两层for循环中一个是nums[k]一个是nums[i]仍然使得left和right互相靠近。//nums[k]nums[i]nums[left]nums[right] target for(k0;){if(nums[k]targetnums[k]0target0) break;//对nums[k]剪枝if(k0 nums[k]nums[k-1]) countinue;对nums[k]去重for(ik1;){if(nums[k]nums[i]targetnums[k]nums[i]0target0) break;//对nums[k]nums[i]剪枝//对nums[i]去重if(ik1nums[i]nums[i-1]) {continue;}//同三数之和逻辑....}}代码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;} };
http://www.dnsts.com.cn/news/176769.html

相关文章:

  • 邯郸市建设局网站政策环保网站主题
  • 做网站协调购物网站的前台用什么做
  • 招远网站建设网站备案密码重置申请表
  • 做网站怎么返回首页网络广告策划书怎么写
  • 英文网站怎么切换中文wordpress换域名后
  • 画册欣赏网站没人注意的暴利行业
  • 圣诞节网站怎么做唯品会 一家专门做特卖的网站
  • 网络推广公司案例优化seo排名
  • 安徽工业大学两学一做网站长沙市建设工程集团有限公司
  • 有网站是做水果原产地代发的吗陕西建设厅官网
  • 怎么做安居客网站重庆建站模板代理
  • 炽乐清网站建设页游赚钱
  • 食品类网站设计wordpress 如何安装中文版本
  • 我想做一个网站 不知道找谁做如何做一名网站编辑
  • php做数据网站wordpress鼠标样式
  • 网站开发 语言 架构 数据库蕲春做网站
  • 旅游网站推荐排行榜wordpress 幻灯片无法显示
  • 网站建设发展方向及前景展望免费注册个人网站不花钱
  • 什么网站可以做高三英语试题移动电商网站建设
  • 哈尔滨市招标网西安seo推广公司
  • 设计建立企业网站最佳的公司vps搭建wordpress博客
  • 国外室内设计网站推荐手把手教你做网站 怎么注册域名
  • 网站如何做快捷支付网络营销模式案例分析
  • 深圳便宜的网站建设安庆网站开发
  • 个人怎么做淘宝客网站百度权重什么意思
  • 做网站应该注意哪些方面WordPress担保系统
  • 电商网站建设市场7下载wordpress
  • 什么网站是做电机控制的网站不做301可以吗
  • 网站不用了 怎么关闭安卓应用软件开发方向
  • 网站建设画册网站维护中 页面