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

织梦可以做淘宝客网站吗杭州百度开户

织梦可以做淘宝客网站吗,杭州百度开户,商业网站建设规划范文,做乒乓球网站的图片文章目录 前言两数之和存在重复元素 II好数对的数目总持续时间可被 60 整除的歌曲 前言 💫你好,我是辰chen,本文旨在准备考研复试或就业 💫文章题目大多来自于 leetcode,当然也可能来自洛谷或其他刷题平台 &#x1f4a…

文章目录

  • 前言
  • 两数之和
  • 存在重复元素 II
  • 好数对的数目
  • 总持续时间可被 60 整除的歌曲

前言

💫你好,我是辰chen,本文旨在准备考研复试或就业
💫文章题目大多来自于 leetcode,当然也可能来自洛谷或其他刷题平台
💫欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容
🌟 仅给出C++版代码

以下的几个专栏是本人比较满意的专栏(大部分专栏仍在持续更新),欢迎大家的关注:

💥ACM-ICPC算法汇总【基础篇】
💥ACM-ICPC算法汇总【提高篇】
💥AIoT(人工智能+物联网)
💥考研
💥CSP认证考试历年题解

两数之和


题目链接:两数之和

C++版AC代码:

暴力:时间复杂度 O ( n 2 ) O(n^2) O(n2),空间复杂度 O ( 1 ) O(1) O(1)

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int n = nums.size();for (int i = 0; i < n; i ++ )for (int j = i + 1; j < n; j ++ ){if (nums[i] + nums[j] == target){return {i, j};}}return {};}
};

哈希:时间复杂度 O ( n ) O(n) O(n)find 的时间复杂度为 O ( 1 ) O(1) O(1)】,空间复杂度 O ( n ) O(n) O(n)【建立了一个空哈希表】

注意因为 find 查的是 first 所以我们在插入的时候,first = nums[i]second = i

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int n = nums.size();unordered_map<int, int> m;for (int i = 0; i < n; i ++ ) {auto it = m.find(target - nums[i]);if (it != m. end()){return {it -> second, i};}m[nums[i]] = i;}return {};}
};

存在重复元素 II


题目链接:存在重复元素 II

C++版AC代码:

同样是使用哈希表,这里需要注意,哈希的插入是直接使用 m[nums[i]] = i; 不可以使用 m.insert(make_pair(nums[i], i)),因为nums中是会有相同的值重复出现的,我们只需要保存距离最近的一个点就可以了,但是 insert 操作只会保存第一个存入的键值对,后续相同的键值不会更新

class Solution {
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {unordered_map<int, int> m;for (int i = 0; i < nums.size(); i ++ ) {auto it = m.find(nums[i]);if (it != m.end() && abs(m[nums[i]] - i) <= k) return true;m[nums[i]] = i;}return false;}
};                                                                                              

好数对的数目


题目链接:好数对的数目

C++版AC代码:

桶的思想

class Solution {
public:int numIdenticalPairs(vector<int>& nums) {int cnt = 0;int t[110] = {0};for (int i = 0; i < nums.size(); i ++ ){cnt += t[nums[i]];t[nums[i]] ++;}return cnt;}
};

C++版AC代码:

哈希也可,本质无区别

class Solution {
public:int numIdenticalPairs(vector<int>& nums) {int cnt = 0;unordered_map<int, int> m;for (int i = 0; i < nums.size(); i ++ ){cnt += m[nums[i]];m[nums[i]] ++;}return cnt;}
};

总持续时间可被 60 整除的歌曲


题目链接:总持续时间可被 60 整除的歌曲

C++版AC代码:

哈希维护出现的次数,依次枚举可能的解,因为元素的大小为 [1, 500],故 j 的上限为 1000,每次 +60

class Solution {
public:int numPairsDivisibleBy60(vector<int>& time) {unordered_map<int, int> m;int cnt = 0;for (int i = 0; i < time.size(); i ++ ){for (int j = 60; j < 1000; j += 60 ){int tmp = j - time[i];auto it = m.find(tmp);if (it != m.end()) cnt += m[tmp];}m[time[i]] ++;}return cnt;}
};

C++版AC代码:

其实是没必要进行枚举的,开一个大小为 60 的数组,找可以被 60 整除的另一个数实际上就是在找 60 - time[i] % 60,特别的对于自身就可以被 60 整除的数,需要将其映射回 0,故对于每一个 time[i],去找 (60 - time[i] % 60) % 60

class Solution {
public:int numPairsDivisibleBy60(vector<int>& time) {int cnt = 0;int nums[65] = {0};for (int i = 0; i < time.size(); i ++ ){cnt += nums[(60 - time[i] % 60) % 60];nums[time[i] % 60] ++;}return cnt;}
};
http://www.hkea.cn/news/193941/

相关文章:

  • 网站后台生成器人工智能培训班收费标准
  • 在线做app的网站武汉网络营销公司排名
  • 了解深圳网站页面设计潍坊百度关键词优化
  • 制作网站怎样找公司来帮做seo词条
  • 网络销售有哪些站长工具seo排名
  • 做房产中介网站怎么注册一个自己的网站
  • 天津网站设计成功柚米全网推广成功再收费
  • 建设公司网站靠谱吗企业网站设计制作
  • 电子商务学什么课程内容兰州搜索引擎优化
  • 沧州网站建设制作设计优化能打开的a站
  • 石家庄网站建设推广报价怎么让百度快速收录网站
  • 建设局网站上开工日期选不了制作网站需要多少费用
  • 犬舍网站怎么做网页推广怎么做
  • 镇江核酸检测最新通知如何优化网页加载速度
  • wpf入可以做网站吗竞价托管外包费用
  • 公司设计网站需要包含什么资料优化排名软件
  • 日本樱花云服务器wan亚马逊seo关键词优化软件
  • layui框架的wordpress厦门站长优化工具
  • 微网站设计尺寸培训课程总结
  • 保险平台官网湖北搜索引擎优化
  • 西安微信小程序制作公司关键词优化方法
  • 手机网站建设用乐云seo搜索引擎是什么意思啊
  • 昆明做大的网站开发公司google网页搜索
  • 做网站运营需要什么证宁波靠谱营销型网站建设
  • 天津进口网站建设电话青岛网站建设公司
  • 游戏币网站建设win7优化大师官方网站
  • 技术专业网站建设班级优化大师网页版登录
  • 外国网站上做雅思考试台州百度推广优化
  • 男女做那种的的视频网站国内最好的搜索引擎
  • 泉州做网站优化价格成功品牌策划案例