Skip to content

Instantly share code, notes, and snippets.

View icameling's full-sized avatar
🎯
Focusing

icameling

🎯
Focusing
View GitHub Profile
@icameling
icameling / remove-nth-node-from-end-of-list.cpp
Last active July 18, 2022 11:03
#链表 #删除链表的倒数第N个节点
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
@icameling
icameling / linked-list-cycle-ii.cpp
Created July 18, 2022 11:57
#链表 #环形链表 II
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
@icameling
icameling / valid-anagram.cpp
Created July 18, 2022 12:28
#哈希表 #有效的字母异位词
class Solution {
public:
bool isAnagram(string s, string t) {
if (s.size() != t.size()) return false;
int table[26] = {0};
for (int i = 0; i < s.size(); ++i) {
table[s[i] - 'a']++;
table[t[i] - 'a']--;
}
@icameling
icameling / intersection-of-two-arrays.cpp
Created July 18, 2022 12:37
#哈希表 #两个数组的交集
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> same_set;
unordered_set<int> num1_set(nums1.begin(), nums1.end());
for (auto num : nums2) {
if (num1_set.find(num) != num1_set.end())
same_set.insert(num);
}
@icameling
icameling / happy-number.cpp
Created July 18, 2022 12:48
#哈希表 #快乐数
class Solution {
public:
bool isHappy(int n) {
unordered_set<int> nums;
int sum = 0;
while (sum != 1) {
sum = 0;
while (n > 0) {
int k = n % 10;
@icameling
icameling / two-sum.cpp
Created July 18, 2022 13:07
#哈希表 #两数之和
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> nums_map;
for (int i = 0; i < nums.size(); ++i){
int k = target - nums[i];
auto iter = nums_map.find(k);
if (iter != nums_map.end()) {
return {i, nums_map[k]};
}
@icameling
icameling / 4sum-ii.cpp
Created July 18, 2022 13:21
#哈希表 #四数相加
class Solution {
public:
int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
int ret = 0;
unordered_map<int, int> ab_map;
for (int a : nums1) {
for (int b : nums2) {
ab_map[a+b]++;
}
}
@icameling
icameling / ransom-note.cpp
Created July 18, 2022 13:27
#哈希表 #赎金信
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
if (ransomNote.size() > magazine.size()) return false;
int table[26] = {0};
for (int i = 0; i < magazine.size(); ++i) {
table[magazine[i] - 'a']++;
}
for (int i = 0; i < ransomNote.size(); ++i) {
@icameling
icameling / 3sum.cpp
Created July 18, 2022 14:13
#哈希表 #三数之和
class Solution {
public:
inline void forward(vector<int>& nums, int k, int& j) {
while (j < k && nums[j] == nums[j+1]) {
j++;
}
}
inline void backward(vector<int>& nums, int j, int& k) {