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

网站建设策划报告当地的建设工程信息网

网站建设策划报告,当地的建设工程信息网,热点事件,58同城合肥网站建设一、回顾代码随想录算法训练营第七天 1.454四数相加 1.1解题思路 利用哈希表将四层for转换为两层for,寻找对应的元素是否在map中 关键就是四层for循环太复杂了,时空消耗太大了,所以最好退化为两层for循环,也就是将四数之和变为…

一、回顾代码随想录算法训练营第七天

1.454四数相加

1.1解题思路

利用哈希表将四层for转换为两层for,寻找对应的元素是否在map中

关键就是四层for循环太复杂了,时空消耗太大了,所以最好退化为两层for循环,也就是将四数之和变为两数之和,先将前两个数的和统计到map中,初始化map;然后遍历后两个数组得到c + d的和,因为a + b = 0 - c - d;所以就在map中找有没有key是 0 - c - d的,如果有的话,那么就统计这个key对应的value,统计到总和中即可,最终返回这个总和

1.2代码

class Solution {
public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {unordered_map<int, int> umap;for(int a : nums1) {for(int b : nums2) {umap[a + b]++;}}int count1 = 0;for(int c : nums3) {for(int d : nums4) {if(umap.find(0 - c - d) != umap.end()) {count1 += umap[0 - c - d];}}}return count1;}
};

2.15三数之和

关键要理解双指针法,因为这里有去重的可能性,所以要考虑到位出现重复如何处理。去重:排序,遇到相同的元素就跳过。

注意边界条件,一切针对left和right的行为都要基于left < right这个条件,否则执行left++,right--的时候,会出现left和right越界的情况。

3.18四数之和

和三数之和思路一样

积累语法

if((long) nums[i] + nums[j] + nums[left] + nums[right] < target) left++;

这里的(long)将nums[i]操作数类型强制转换为long,以防止数据太大无法处理。同时编译器将会将所有的剩余其他操作数同样也隐式转换为long类型。 

二、P1328生活大爆炸版石头剪刀布

1.解题思路

这些题目真的是完全没有算法,全靠模拟,可以定义两个数组元素是重复值的数组,将别的元素都进行编码,并且编码定义胜负规则。

1.根据规律数组取余定义所有的数组

2.定义胜负规则

3.进行数组的遍历,同时求双方的得分。

2.代码

#include <iostream>
#include <vector>
using namespace std;int main() {int N, NA, NB;cin >> N >> NA >> NB;vector<int> guilvA(NA, 0);vector<int> guilvB(NB, 0);for(int i = 0; i < NA; i++) {cin >> guilvA[i];}for(int j = 0; j < NB; j++) {cin >> guilvB[j];}int sumA = 0;int sumB = 0;// 给数组赋重复变化的元素的值vector<int> A(N, 0);vector<int> B(N, 0);for(int i = 0; i < N; i++) {A[i] = guilvA[i % NA];B[i] = guilvB[i % NB];}for(int i = 0; i < N; i++) {if(A[i] == B[i]) continue;if(A[i] == 0 && B[i] == 1) sumB++;if(A[i] == 0 && B[i] == 2) sumA++;if(A[i] == 0 && B[i] == 3) sumA++;if(A[i] == 0 && B[i] == 4) sumB++;if(A[i] == 1 && B[i] == 0) sumA++;if(A[i] == 1 && B[i] == 2) sumB++;if(A[i] == 1 && B[i] == 3) sumA++;if(A[i] == 1 && B[i] == 4) sumB++;if(A[i] == 2 && B[i] == 0) sumB++;if(A[i] == 2 && B[i] == 1) sumA++;if(A[i] == 2 && B[i] == 3) sumB++;if(A[i] == 2 && B[i] == 4) sumA++;if(A[i] == 3 && B[i] == 0) sumB++;if(A[i] == 3 && B[i] == 1) sumB++;if(A[i] == 3 && B[i] == 2) sumA++;if(A[i] == 3 && B[i] == 4) sumA++;if(A[i] == 4 && B[i] == 0) sumA++;if(A[i] == 4 && B[i] == 1) sumA++;if(A[i] == 4 && B[i] == 2) sumB++;if(A[i] == 4 && B[i] == 3) sumB++;}cout << sumA << ' ' << sumB;return 0;
}
http://www.dtcms.com/wzjs/534886.html

相关文章:

  • 东莞网站建设价位做网站前需要准备什么条件
  • 建设地区网站建议宁波建站模板厂家
  • 设计素材网站版权问题漳州企业网站建设
  • 网站不备案可以做百度推广吗两个男生是怎么做的细写
  • 社交网站的设计简单个人网页制作成品
  • 南通网站优化推广广州服装网站建设
  • 网站建设一般好久到期郑州移动网站建设
  • 怎样建商业网站网站源码上传安装
  • 庆网站建设打电话沟通做网站话术
  • 家具网站首页设计wordpress上传excel文件
  • 网站开发职业定位密云石家庄网站建设
  • 网站建设后需要录入网站开发一个支付功能要好多钱
  • 女生做网站运营抖音代运营比较有名的公司
  • 品展示设计网站做电商网站前端需要什么框架
  • 专业科技网站建设wordpress5文章外链
  • 网站f式布局上海app开发和制作公司
  • 电脑网站设计制作设一个网站链接为安全怎么做
  • 网站上挂百度广告联盟需要申请icp经营许可证吗手机营销软件
  • 做炭化料的网站合肥网络运营公司哪家好
  • 网站开发的毕设开题报告免费设计头像
  • 网站更新方案怎样下载软件到电脑桌面上
  • 做美图+网站有哪些厦门建行网站首页
  • 安装Wordpress个人网站谁有wap网站
  • 网站建设资讯群晖wordpress只能访问首页
  • 公司网站可以分两个域名做吗wordpress 右侧悬浮
  • 移动手机网站建设郑州做网站哪家比较好
  • 小程序源码网站论坛wordpress伪原创设置
  • 小企业网站服务器网络运维工程师简历范文
  • 网站群建设意见征集主题字体wordpress
  • 帮网站做推广赚钱wordpress 值得买主题