网站页面设计说明网络热词2022流行语及解释
文章目录
- 前言
- 一、最大连续1的个数
- 二、差的绝对值为K的数对数目
- 三、数组中两元素的最大乘积
- 四、数组元素和与数字和的绝对值的差
- 五、K个元素的最大和
- 六、等差三元组的数目
- 七、移除元素
前言
本文为《C++学习》的第14篇文章,今天通过Leetcode的几道题来熟悉顺序表的大小操作。
一、最大连续1的个数
485.最大连续1的个数
#include<algorithm>class Solution {
public:int findMaxConsecutiveOnes(vector<int>& nums) {int maxcnt = 0;int currcnt = 0;for(size_t i =0; i < nums.size(); ++i){if(nums[i] ==1){currcnt++;maxcnt = max(maxcnt, currcnt);}else currcnt = 0;}return maxcnt;}
};
二、差的绝对值为K的数对数目
2006.差的绝对值为K的数对数目
#include<algorithm>class Solution {
public:int countKDifference(vector<int>& nums, int k) {int cnt = 0;for(size_t i = 0; i < nums.size(); ++i){for(size_t j = 0; j < nums.size(); ++j){if(i < j && abs(nums[i] - nums[j]) == k){cnt++;}} }return cnt;}
};
三、数组中两元素的最大乘积
1464.数组中两元素的最大乘积
#include<algorithm>class Solution {
public:int maxProduct(std::vector<int>& nums) {if (nums.size() < 2) {return 0; // 如果数组长度小于2,返回0(虽然根据题意这种情况不会发生)}// 对数组进行排序sort(nums.begin(), nums.end());// 最大的两个元素分别是最后一个和倒数第二个int n = nums.size();int max1 = nums[n - 1];int max2 = nums[n - 2];// 返回 (max1-1) * (max2-1)return (max1 - 1) * (max2 - 1);}
};
四、数组元素和与数字和的绝对值的差
2535.数组元素和与数字和的绝对值的差
class Solution {
public:int differenceOfSum(vector<int>& nums) {int element_sum = 0, num_sum = 0;for(int num : nums){element_sum += num;int n = num;while(n > 0){num_sum += n % 10;n /= 10; }} return abs(element_sum - num_sum);}
};
五、K个元素的最大和
2656.K个元素的最大和
class Solution {
public:int maximizeSum(vector<int>& nums, int k) {int maxscore = *max_element(nums.begin(), nums.end());int score = 0;for(int i = 0; i < k; ++i){score += maxscore + i; }return score;}};
六、等差三元组的数目
2367.等差三元组的数目
class Solution {
public:int arithmeticTriplets(std::vector<int>& nums, int diff) {int count = 0; for (size_t i = 0; i < nums.size(); ++i) {for (size_t j = i + 1; j < nums.size(); ++j) {if (nums[j] - nums[i] == diff) { for (size_t k = j + 1; k < nums.size(); ++k) {if (nums[k] - nums[j] == diff) { count++; }}}}}return count; }
};
七、移除元素
27.移除元素
class Solution {
public:int removeElement(vector<int>& nums, int val) {int k = 0;for (int i = 0; i < nums.size(); ++i){if (nums[i] != val){nums[k++] = nums[i];} } return k;}
};
这就是今天的全部内容了,谢谢大家的观看,不要忘了给一个免费的赞哦!