当前位置:网站首页>Leetcode question brushing (5.28) hash table
Leetcode question brushing (5.28) hash table
2022-07-06 08:20:00 【Freya】
1. Effective alphabetic words
subject :
Given two strings s and t , Write a function to determine t Whether it is s Letter heteronym of .
Be careful : if s and t Each character in the has the same number of occurrences , said s and t They are mutually alphabetic words .
Input : s = "anagram", t = "nagaram"
Output : true
Input : s = "rat", t = "car"
Output : false
Ideas :
Use a length of 26 Array of represents hash table ,s The corresponding position of the middle letter in the hash table (s[i] - ‘a’) Add one ,t The middle letters are then subtracted by one , Finally, check whether the hash table is all 0, otherwise false.
note :
When it comes to quickly determining whether an element appears in the set , Think about hashifa .
But hashifa also sacrificed space for time , Because you need to use extra arrays ,set Or is it map To store data , In order to achieve fast search .
When it comes to using collections to solve hash problems , priority of use unordered_set, Because its query and add delete efficiency is optimal , If you need the set to be ordered , Then use set, If it requires not only order but also duplicate data , Then use multiset.
python in ord() It means take ASCII value .
C++:
// The time complexity is O(n), Spatial complexity O(1)
class Solution {
public:
bool isAnagram(string s, string t) {
int record[26] = {
0};
for(int i = 0; i < s.size(); i++){
record[s[i] - 'a']++;
}
for(int i = 0; i < t.size(); i++){
record[t[i] - 'a']--;
}
for(int i = 0; i < 26; i++){
if(record[i] != 0){
return false;
}
}
return true;
}
};
Python:
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
record = [0] * 26
for i in range(len(s)):
record[ord(s[i]) - ord("a")] += 1
for i in range(len(t)):
record[ord(t[i]) - ord("a")] -= 1
for i in range(26):
if record[i] != 0:
return False
break
return True
2. Intersection of two arrays
subject :
Given two arrays nums1 and nums2 , return Their intersection . Every element in the output must be only Of . We can Regardless of the order of the output results .
Input :nums1 = [1,2,2,1], nums2 = [2,2]
Output :[2]
Input :nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output :[9,4]
explain :[4,9] It is also passable
Ideas :
C++:
use unordered_set Realization
Be careful : Use it directly set Not only does it take up more space than arrays , And it's slower than arrays ( So can we use arrays or try to use arrays )
Python:
Two arrays become two sets , Intersection of sets , Then revert to array (list)
note :
C++:
- for ( : ) For traversing arrays
- unordered_set::find() The function is C++ STL Built in functions in , Used to search for elements in containers .
Returns the iterator that found the element , Otherwise, it points back to unordered_set Iterator at the end .
Python:
& : Intersection of sets
C++:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> result_set;
unordered_set<int> nums_set(nums1.begin(), nums1.end());
for (int num : nums2) {
// Commonly used find and end Combine to judge num_set Whether contains num
// If nums_set contains nums2 Insert it into result_set in
// here nums_set yes nums1 Converted ( duplicate removal )
if (nums_set.find(num) != nums_set.end()){
result_set.insert(num);
}
}
return vector<int> (result_set.begin(), result_set.end());
}
};
Python:
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
return list(set(nums1) & set(nums2))
边栏推荐
- Common functions for PHP to process strings
- Golang DNS write casually
- MFC sends left click, double click, and right click messages to list controls
- 【MySQL】数据库的存储过程与存储函数通关教程(完整版)
- 好用的TCP-UDP_debug工具下载和使用
- LDAP應用篇(4)Jenkins接入
- 【云原生】手把手教你搭建ferry开源工单系统
- Online yaml to CSV tool
- Permutation and combination function
- 2.10transfrom attribute
猜你喜欢
Database basic commands
22. Empty the table
How to use information mechanism to realize process mutual exclusion, process synchronization and precursor relationship
Artcube information of "designer universe": Guangzhou implements the community designer system to achieve "great improvement" of urban quality | national economic and Information Center
面向个性化需求的在线云数据库混合调优系统 | SIGMOD 2022入选论文解读
C语言 - 位段
2022 Inner Mongolia latest water conservancy and hydropower construction safety officer simulation examination questions and answers
Fibonacci sequence
Configuring OSPF load sharing for Huawei devices
On the day of resignation, jd.com deleted the database and ran away, and the programmer was sentenced
随机推荐
ESP series pin description diagram summary
[research materials] 2022 enterprise wechat Ecosystem Research Report - Download attached
PHP - Common magic method (nanny level teaching)
Convolution, pooling, activation function, initialization, normalization, regularization, learning rate - Summary of deep learning foundation
22. Empty the table
【MySQL】数据库的存储过程与存储函数通关教程(完整版)
Migrate data from CSV files to tidb
Vocabulary notes for postgraduate entrance examination (3)
[Yugong series] creation of 009 unity object of U3D full stack class in February 2022
Erc20 token agreement
1202 character lookup
leetcode刷题 (5.29) 哈希表
让学指针变得更简单(三)
Sanzi chess (C language)
Asia Pacific Financial Media | designer universe | Guangdong responds to the opinions of the national development and Reform Commission. Primary school students incarnate as small community designers
Understanding of law of large numbers and central limit theorem
面向个性化需求的在线云数据库混合调优系统 | SIGMOD 2022入选论文解读
23. Update data
C语言 - 位段
[research materials] 2021 China online high growth white paper - Download attached