Leetcode Notes
1768. Merge Strings Alternately
2024.01.10 C++ Version 1:
class Solution {
public:
string mergeAlternately(string word1, string word2) {
int len_word1 = word1.length();
int len_word2 = word2.length();
string concate = "";
if (len_word1 > len_word2){
for(int i=0; i<len_word2; i++){
concate = concate + word1[i] + word2[i];
}
for(int j=len_word2; j<len_word1; j++){
concate = concate + word1[j];
}
} else if (len_word1 == len_word2){
for(int i=0; i<len_word2; i++){
concate = concate + word1[i] + word2[i];
}
} else {
for(int i=0; i<len_word1; i++){
concate = concate + word1[i] + word2[i];
}
for(int j=len_word1; j<len_word2; j++){
concate = concate + word2[j];
}
}
return concate;
}
};
Results:
Type |
Runtime |
Memory |
Result |
3ms |
8.78MB |
Beats |
49.62% |
5.67% |
2024.01.10 C++ Version 2:
class Solution {
public:
string mergeAlternately(string word1, string word2) {
int i = 0, j = 0;
int len_word1 = word1.length();
int len_word2 = word2.length();
string concate = "";
while(i < len_word1 && j < len_word2){
concate += word1[i++];
concate += word2[j++];
}
while(i < len_word1){
concate += word1[i++];
}
while(j < len_word2){
concate += word2[j++];
}
return concate;
}
};
Results:
Type |
Runtime |
Memory |
Result |
3ms |
6.64MB |
Beats |
49.62% |
77.36% |
2024.01.10 Python Version 1:
class Solution:
def mergeAlternately(self, word1: str, word2: str) -> str:
concate = ""
i = 0
j = 0
len1 = len(word1)
len2 = len(word2)
while i < len1 and j < len2:
concate += word1[i]
concate += word2[j]
i += 1
j += 1
while i < len1:
concate += word1[i]
i += 1
while j < len2:
concate += word2[j]
j += 1
return concate
Results:
Type |
Runtime |
Memory |
Result |
39ms |
17.26MB |
Beats |
52.52% |
26.97% |
1071. Greatest Common Divisor of Strings
2024.01.11 Python Version 1:
class Solution:
def gcdOfStrings(self, str1: str, str2: str) -> str:
if str1 + str2 != str2 + str1:
return ""
len_str1 = len(str1)
len_str2 = len(str2)
import math
return str1[0:math.gcd(len_str1, len_str2)]
Results:
Type |
Runtime |
Memory |
Result |
37ms |
17.37MB |
Beats |
73.96% |
19.28% |
2024.01.11 C++ Version 1:
class Solution {
public:
string gcdOfStrings(string str1, string str2) {
if(str1 + str2 != str2 + str1){
return "";
}
return str1.substr(0, gcd(str1.length(), str2.length()));
}
};
Type |
Runtime |
Memory |
Result |
2ms |
7.53MB |
Beats |
69.15% |
58.06% |
1431. Kids With the Greatest Number of Candies
2024.01.13 C++ Version 1:
class Solution {
public:
vector<bool> kidsWithCandies(vector<int>& candies, int extraCandies) {
vector<int> after_recieve(candies.size());
vector<bool> bool_vector(candies.size());
for(int i=0;i<candies.size();i++){
after_recieve[i] = (candies[i] + extraCandies);
}
int largest_element = candies[0];
for(int i=0; i<candies.size(); i++){
if(candies[i] > largest_element){
largest_element = candies[i];
}
}
for(int i=0;i<after_recieve.size();i++){
if(after_recieve[i] >= largest_element){
bool_vector[i]= true;
}else{
bool_vector[i] = false;
}
}
return bool_vector;
}
};
Type |
Runtime |
Memory |
Result |
5ms |
9.28MB |
Beats |
31.80% |
63.86% |
2024.01.13 C++ Version 2:
class Solution {
public:
vector<bool> kidsWithCandies(vector<int>& candies, int extraCandies) {
vector<bool> bool_vector(candies.size());
int largest_element = candies[0];
int size = candies.size();
for(int i=0; i<size; i++){
if(candies[i] > largest_element){
largest_element = candies[i];
}
}
for(int i=0; i<size; i++){
if(candies[i] + extraCandies >= largest_element){
bool_vector[i]= true;
}else{
bool_vector[i] = false;
}
}
return bool_vector;
}
};
Type |
Runtime |
Memory |
Result |
0ms |
9.17MB |
Beats |
100.00% |
96.69% |
605. Can Place Flowers
2024.01.14 C++ Version 1:
class Solution {
public:
bool canPlaceFlowers(vector<int>& flowerbed, int n) {
int cnt = 0;
int size = flowerbed.size();
if(size == 1){
if(flowerbed[0] == 0){
cnt += 1;
}
}else{
for(int i=0;i<size;i++){
if(i == 0){
if(flowerbed[i+1] == 0){
if(flowerbed[i] != 1){
flowerbed[i] = 1;
cnt += 1;
}
}
}else if (i == size-1){
if(flowerbed[i-1] == 0){
if(flowerbed[i] != 1){
cnt += 1;
}
}
}else{
if(flowerbed[i-1] == 0 && flowerbed[i+1] == 0){
if(flowerbed[i] != 1){
flowerbed[i] = 1;
cnt += 1;
}
}
}
}
}
if(cnt >= n){
return true;
}else{
return false;
}
}
};
Type |
Runtime |
Memory |
Result |
7ms |
20.78MB |
Beats |
96.64% |
33.96% |
2024.01.14 C++ Version 2:
class Solution {
public:
bool canPlaceFlowers(vector<int>& flowerbed, int n) {
int cnt = 0;
int size = flowerbed.size();
if(size == 1){
if(flowerbed[0] == 0){
cnt += 1;
}
}else{
for(int i=0;i<size;i++){
if(i == 0){
if(flowerbed[i+1] == 0 && flowerbed[i] != 1){
flowerbed[i] = 1;
cnt += 1;
}
}else if (i == size-1){
if(flowerbed[i-1] == 0 && flowerbed[i] != 1){
cnt += 1;
}
}else{
if(flowerbed[i-1] == 0 && flowerbed[i] != 1 && flowerbed[i+1] == 0){
flowerbed[i] = 1;
cnt += 1;
}
}
}
}
if(cnt >= n){
return true;
}else{
return false;
}
}
};
Type |
Runtime |
Memory |
Result |
11ms |
20.66MB |
Beats |
80.40% |
66.07% |
345. Reverse Vowels of a String
2024.01.15 C++ Version 1:
class Solution {
public:
string reverseVowels(string s) {
string save_string = "";
for(int i=0; i<s.length(); i++){
if(s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o' || s[i]=='u' ||
s[i]=='A' || s[i]=='E' || s[i]=='I' || s[i]=='O' || s[i]=='U'){
save_string += s[i];
s[i] = '_';
}
}
int j = save_string.length() - 1;
if(save_string.length()>0){
for(int i=0; i<s.length(); i++){
if(s[i]=='_'){
s[i] = save_string[j];
j -= 1;
}
}
}
return s;
}
};
Type |
Runtime |
Memory |
Result |
8ms |
8.19MB |
Beats |
50.20% |
46.54% |
151. Reverse Words in a String
2024.01.17 C++ Version 1:
class Solution {
public:
string reverseWords(string s) {
vector<string> wordlist(0);
string concate_word = "";
int start = 0;
int end = 0;
int i = 0;
int j = 0;
while(i < s.length()){
if(s[i]!=' '){
start = i;
for(j=i; j<s.length(); j++){
if(s[j]==' '){
end = j;
break;
}
}
i = j - 1;
wordlist.push_back(s.substr(start, end - start));
}
i++;
}
if(start == end){
return s;
}
for(int k = 0; k < wordlist.size(); k++){
if(k == 0){
concate_word = wordlist[wordlist.size()-1-k];
}else{
concate_word = concate_word + " " + wordlist[wordlist.size()-1-k];
}
}
return concate_word;
}
};
Type |
Runtime |
Memory |
Result |
14ms |
47.78MB |
Beats |
12.61% |
5.29% |
238. Product of Array Except Self
2024.01.22 C++ Version 1:
class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {
vector<int> leftProd(nums.size(), 1);
vector<int> rightProd(nums.size(), 1);
vector<int> result(nums.size(), 1);
for(int i=1; i<nums.size(); i++){
leftProd[i] = leftProd[i-1] * nums[i-1];
}
for(int i=nums.size()-2; i>=0; i--){
rightProd[i] = rightProd[i+1] * nums[i+1];
}
for(int i=0; i<nums.size(); i++){
result[i] = leftProd[i] * rightProd[i];
}
return result;
}
};
Type |
Runtime |
Memory |
Result |
24ms |
27.52MB |
Beats |
23.63% |
5.21% |