欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 【Daily Code】leetcode热题100道

【Daily Code】leetcode热题100道

2025/2/6 1:42:50 来源:https://blog.csdn.net/2201_76119663/article/details/145433350  浏览:    关键词:【Daily Code】leetcode热题100道

1. 两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

你可以按任意顺序返回答案

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

49. 字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词

class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {vector<vector<string>> ans;unordered_map<string, vector<string>> groups;for(auto x : strs) {string s = x;sort(s.begin(), s.end());groups[s].emplace_back(x);}for(auto it = groups.begin(); it != groups.end(); it ++) {ans.emplace_back(it->second);}return ans;}
};

总结

对于STL的运用不够熟练,把问题复杂化了

128. 最长连续序列

class Solution {
public:int longestConsecutive(vector<int>& nums) {sort(nums.begin(), nums.end());set<int> c(nums.begin(), nums.end());nums.assign(c.begin(), c.end()); int n = nums.size();int max_l = 0;for(int i = 0; i < n; i ++) {while(max_l + i < n && nums[max_l + i] - nums[i] == max_l) {max_l ++;}}return max_l;}
};

283. 移动零

class Solution {
public:void moveZeroes(vector<int>& nums) {int cnt = 0;int n = nums.size();for(int i = 0; i < nums.size(); ){if(!nums[i]) {cnt ++;// auto iter = std::remove(nums.begin(), nums.end(), 0);auto iter = nums.erase(nums.begin() + i);}else {i++;}}while(cnt) {cnt--;nums.push_back(0);}return ;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com