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

网站的域名技巧和空间选择面签拍照 网站备案

网站的域名技巧和空间选择,面签拍照 网站备案,建设网站域名,大连flash网站2. 2441.与对应负数同时存在的最大正整数(简单) 2441. 与对应负数同时存在的最大正整数 - 力扣(LeetCode) 思想 1.给你一个 不包含 任何零的整数数组 nums ,找出自身与对应的负数都在数组中存在的最大正整数 k 。 返回正整数 k &#xff0…
2. 2441.与对应负数同时存在的最大正整数(简单)

2441. 与对应负数同时存在的最大正整数 - 力扣(LeetCode)

思想

1.给你一个 不包含 任何零的整数数组 nums ,找出自身与对应的负数都在数组中存在的最大正整数 k 。
返回正整数 k ,如果不存在这样的整数,返回 -1 。
2.满足条件 a j = − a i a_j=-a_i aj=ai,相当于两数之和等于0

代码

c++:

class Solution {
public:int findMaxK(vector<int>& nums) {int n = nums.size(), res = -1;unordered_map<int, int> mp;for (int j = 0; j < n; ++j) {auto it = mp.find(-nums[j]);if (it != mp.end()) {res = max(res, abs(nums[j]));}mp[nums[j]] = j;}return res;}
};
3. 1512.好数对的数目(简单)

1512. 好数对的数目 - 力扣(LeetCode)

思想

1.给你一个整数数组 nums 。
如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。
返回好数对的数目。
2.满足条件 a i = a j a_i=a_j ai=aj,但哈希表的值为 n u m s [ i ] nums[i] nums[i]的数量,这样res更新加上当前 n u m s [ j ] nums[j] nums[j]形成的所有数对

代码

c++:

class Solution {
public:int numIdenticalPairs(vector<int>& nums) {int n = nums.size(), res = 0;unordered_map<int, int> mp;for (int j = 0; j < n; ++j) {auto it = mp.find(nums[j]);if (it != mp.end())res += mp[nums[j]];++mp[nums[j]];}return res;}
};
4. 2001.可互换矩形的组数(中等,学习最简分数)
思想

1.用一个下标从 0 开始的二维整数数组 rectangles 来表示 n 个矩形,其中 rectangles[i] = [widthi, heighti] 表示第 i 个矩形的宽度和高度。
如果两个矩形 i 和 ji < j)的宽高比相同,则认为这两个矩形 可互换 。更规范的说法是,两个矩形满足 widthi/heighti == widthj/heightj(使用实数除法而非整数除法),则认为这两个矩形 可互换 。
计算并返回 rectangles 中有多少对 可互换 矩形。
2.满足条件i和j的宽高比相同,可以跟3. 1512.好数对的数目一样的做法,只不过键为double类型,但是数据再大就会出错,要用map储存(unordered_map不行) 最简分数的分子和分母(pair<int,int>)

代码

c++:

class Solution {
public:long long interchangeableRectangles(vector<vector<int>>& rectangles) {int n = rectangles.size();long long res = 0;unordered_map<double, int> mp;for (int j = 0; j < n; ++j) {res += mp[1.0 * rectangles[j][0] / rectangles[j][1]]++;}return res;}
};

学习:

class Solution {
public:int gcd(int a, int b) {if (b == 0)return a;return gcd(b, a % b);}long long interchangeableRectangles(vector<vector<int>>& rectangles) {int n = rectangles.size();long long res = 0;map<pair<int, int>, int> mp;for (int j = 0; j < n; ++j) {int w = rectangles[j][0], h = rectangles[j][1];int yue = gcd(w, h);res += mp[{w / yue, h / yue}]++;}return res;}
};
5. 1128.等价多米诺骨牌对的数量(简单)

1128. 等价多米诺骨牌对的数量 - 力扣(LeetCode)

思想

1.给你一组多米诺骨牌 dominoes 。
形式上,dominoes[i] = [a, b] 与 dominoes[j] = [c, d] 等价 当且仅当 (a == c 且 b == d) 或者 (a == d 且 b == c) 。即一张骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌。
在 0 <= i < j < dominoes.length 的前提下,找出满足 dominoes[i] 和 dominoes[j] 等价的骨牌对 (i, j) 的数量。
2.跟3. 1512.好数对的数目类似,但是本题[a,b][b,a]是等价的,所以人为的让a<=b,通过交换实现即可

代码

c++:

class Solution {
public:int numEquivDominoPairs(vector<vector<int>>& dominoes) {int n = dominoes.size(), res = 0;map<pair<int, int>, int> mp;for (int j = 0; j < n; ++j) {int c = dominoes[j][0], d = dominoes[j][1];if (c < d)swap(c, d);res += mp[{c, d}]++;}return res;}
};
6. 121.买卖股票的最佳时机(简单)

121. 买卖股票的最佳时机 - 力扣(LeetCode)

思想

1.给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
2.对应当前的 p r i c e s [ j ] prices[j] prices[j],要找到它左边的最小值,所以可以枚举右侧卖出价格,维护左侧最小买入价格(一个变量即可)

代码

c++:

class Solution {
public:int maxProfit(vector<int>& prices) {int n = prices.size(), res = 0, minval = prices[0];for (int i = 0; i < n; ++i) {if (prices[i] > minval)res = max(res, prices[i] - minval);elseminval = min(minval, prices[i]);}return res;}
};
7. 219.存在重复元素II(简单)

219. 存在重复元素 II - 力扣(LeetCode)

思想

1.给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。
2.满足条件nums[i] == nums[j] 且 abs(i - j) <= k(即左右存在关系),即可枚举右,维护左
3.因为有个条件abs(i - j) <= k,即长度小于等于k+1,所以就取极限长度k+1,所以可以用定长滑动窗口做

代码

c++:

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

定长滑动窗口:

class Solution {
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {int n = nums.size();map<int, int> mp;for (int j = 0; j < n; ++j) {++mp[nums[j]];if (mp[nums[j]] > 1)return true;// 长度为k+1if (j >= k - 1 + 1)--mp[nums[j - (k+1) + 1]];}return false;}
};
8. 2260.必须拿起的最小连续卡牌数(中等)
思想

1.给你一个整数数组 cards ,其中 cards[i] 表示第 i 张卡牌的  。如果两张卡牌的值相同,则认为这一对卡牌 匹配 。
返回你必须拿起的最小连续卡牌数,以使在拿起的卡牌中有一对匹配的卡牌。如果无法得到一对匹配的卡牌,返回 -1 。
2."如果两张卡牌的值相同,则认为这一对卡牌 匹配“,即满足条件 a i = a j a_i=a_j ai=aj,可以枚举右维护左
3."最小连续卡牌数"说明可以用不定长滑动窗口的最短/最小做

代码

c++:
枚举右,维护左:

class Solution {
public:int minimumCardPickup(vector<int>& cards) {int n = cards.size();map<int, int> mp;int res = INT_MAX;for (int j = 0; j < n; ++j) {auto it = mp.find(cards[j]);if (it != mp.end())res = min(res, j - it->second + 1);mp[cards[j]] = j;}if (res == INT_MAX)return -1;elsereturn res;}
};

不定长滑动窗口求最短/最小:

class Solution {
public:int minimumCardPickup(vector<int>& cards) {int n = cards.size();map<int, int> mp;int res = INT_MAX;int left = 0;for (int right = 0; right < n; ++right) {++mp[cards[right]];while (left <= right && mp[cards[right]] > 1) {res = min(res, right - left + 1);--mp[cards[left]];++left;}}if (res == INT_MAX)return -1;elsereturn res;}
};

文章转载自:

http://GsnlN38E.zpnfc.cn
http://pDgaNQZ2.zpnfc.cn
http://xJPz3eUC.zpnfc.cn
http://xvKo5IA9.zpnfc.cn
http://KRjNH6X1.zpnfc.cn
http://antB2Blm.zpnfc.cn
http://fgAaOTqK.zpnfc.cn
http://ejgq02pv.zpnfc.cn
http://D3hSxWOD.zpnfc.cn
http://bf2KHWuf.zpnfc.cn
http://WJkbh6sF.zpnfc.cn
http://nF6sIyFT.zpnfc.cn
http://FwKuWHNL.zpnfc.cn
http://9ofZP6In.zpnfc.cn
http://ppGNfRuj.zpnfc.cn
http://bd2GCcIG.zpnfc.cn
http://UUVLBGjq.zpnfc.cn
http://Q3yZUEDM.zpnfc.cn
http://1kAkmR6U.zpnfc.cn
http://JCOKEWLP.zpnfc.cn
http://H58Numj9.zpnfc.cn
http://ry89ATHf.zpnfc.cn
http://gERYTEDh.zpnfc.cn
http://SZTodpXx.zpnfc.cn
http://lEmhWd5m.zpnfc.cn
http://GsKNlN81.zpnfc.cn
http://2L9wYGPy.zpnfc.cn
http://yb4k6JaY.zpnfc.cn
http://MJ35g389.zpnfc.cn
http://wRCyJnZs.zpnfc.cn
http://www.dtcms.com/wzjs/772836.html

相关文章:

  • 国外广告设计网站以下五项中哪项是网络营销的特点
  • 怎么做钓鱼网站spark 网站开发
  • 做网站着用什么软件自己做的网站怎么添加采集模块
  • 陕西的网站建设公司购物网站前端浮动特效怎么做
  • 利用网盘做网站wordpress iis 伪静态 中文
  • 建设的招标网站ppt的网站导航栏怎么做
  • 在线响应式网站wordpress 登录接口
  • 如何进行网站备案网站建设尽量
  • 平安保险网站网页制作软件哪个好用
  • 牙医工具网站建设课程设计报告免费纯ftp空间
  • 科技公司网站网页专业设计网站效果
  • 如何制作网站最简单的方法网站建设时间影响因素
  • 网站服务器规划 用户数电子商务网站设计是什么
  • 网站开发人员主要干什么的网络黄页推广软件哪个好用
  • 网站 建设 汇报wordpress美化框
  • 解析网站咋做的崇左网站搭建
  • 深圳 网站建设培训班手机制作图片软件
  • 国外手机网站模板中国舆情在线
  • 网站信息化建设seo网站推广报价
  • 灌南网站开发网站建设的条件
  • 游戏下载网站模板福建住房和城乡建设厅网站
  • 万能搜索引擎网站网站建设有哪些常用行为
  • 深圳建设局网站红动中国素材网免费下载
  • 重庆潼南网站建设公司建立自己的平台网站吗
  • 网站降权了怎么办网站设计结构图用什么做
  • 网站网页制作企业wordpress 添加meta
  • 评测网站做的那些条形图东莞模板建站哪家好
  • 郴州网站设计较好的公司网站色调为绿色
  • 网站建设调研表满城建设局官方网站
  • 站群系统开发wordpress 标签 彩色