日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

力扣(LeetCode)刷题,简单题(第21期)

發布時間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 力扣(LeetCode)刷题,简单题(第21期) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

第1題:最大連續1的個數

第2題:相同的樹

第3題:檢查平衡性

第4題:僅僅反轉字母

第5題:檢測大寫字母

第6題:在區間范圍內統計奇數數目

第7題:二分查找

第8題:字符串輪轉

第9題:公交車站間的距離

第10題:有效的括號(2020 嗶哩嗶哩校招筆試題)


力扣(LeetCode)定期刷題,每期10道題,業務繁重的同志可以看看我分享的思路,不是最高效解決方案,只求互相提升。

第1題:最大連續1的個數

試題要求如下:

回答(C語言):

int findMaxConsecutiveOnes(int* nums, int numsSize){int temp = 0;for(int i = 0,cou = 0; i < numsSize; i++){if(nums[i] == 1){cou++;}else{cou = 0;}if(cou > temp){temp = cou;}}return temp;
}

運行效率如下所示:


第2題:相同的樹

試題要求如下:

回答(C語言):

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if (p == NULL && q == NULL) {return true;} else if (p == NULL || q == NULL) {return false;} else if (p->val != q->val) {return false;} else {return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);}
}

運行效率如下所示:


第3題:檢查平衡性

試題要求如下:

回答(C語言):

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/#define MAX(a, b)  ((a) < (b) ? (b) : (a))bool CoreFunc(struct TreeNode* root, int* depth)
{if (NULL == root) {*depth = 0;return true;}if (NULL == root->left && NULL == root->right) {*depth = 1;return true;}int left = 0;int right = 0;bool ret = CoreFunc(root->left, &left) && CoreFunc(root->right, &right);int res = left > right ? left - right : right - left;*depth = MAX(left, right) + 1;if (ret && res <= 1) {return true;} else {return false;}
}bool isBalanced(struct TreeNode* root)
{if (NULL == root) {return true;}int depth = 0;return CoreFunc(root, &depth);
}

運行效率如下所示:


第4題:僅僅反轉字母

試題要求如下:

回答(C語言):

char * reverseOnlyLetters(char * S){int i=0,j=strlen(S)-1;char tmp=0;while(i<j){if(!((S[i] >= 'a' && S[i] <= 'z')  || (S[i] >= 'A' && S[i] <= 'Z')))//排除i指向非字母的情況{i++;continue;}if(!((S[j] >= 'a' && S[j] <= 'z')  || (S[j] >= 'A' && S[j] <= 'Z')))//排除j指向非字母的情況{j--;continue;}tmp=S[i];//交換字母S[i]=S[j];S[j]=tmp;i++;j--;}return S;
}

運行效率如下所示:


第5題:檢測大寫字母

試題要求如下:

回答(C語言):

bool detectCapitalUse(char * word){int len = strlen(word);int cnt = 0;for(int i = 0;i<len;i++){if((word[i] >= 'A')&&(word[i] <= 'Z'))cnt++;     }//對應情況1和情況3if((cnt == len)||(cnt == 0)){return true;}//對應情況2else if(((word[0] >= 'A')&&(word[0] <= 'Z')&&(cnt == 1))){return true;}return false;
}

運行效率如下所示:


第6題:在區間范圍內統計奇數數目

試題要求如下:

?

回答(C語言):

int countOdds(int low, int high){if((low%2 == 0) && (high%2 ==0)){return (high-low)/2;}return (high-low)/2+1;
}

運行效率如下所示:


第7題:二分查找

試題要求如下:

回答(C語言):

int search(int* nums, int numsSize, int target){int left = 0;int right = numsSize - 1;int mid = 0;while (left <= right) {mid = left + (right - left) / 2;if (nums[mid] == target) {return mid;} else if (nums[mid] < target) {left = mid + 1;} else if (nums[mid] > target) {right = mid - 1;}}return -1;
}

運行效率如下所示:


第8題:字符串輪轉

試題要求如下:

回答(C語言):

bool isFlipedString(char* s1, char* s2){int a = strlen(s1),b = strlen(s2);if(a != b) return false;int count = 0;for(int i = 0; i < a; i++){if(s1[i] == s2[count]){count++;}  }  int m = count;for(int i = 0; i < a-count; i++){if(s1[i] != s2[m]){return false;}m++;}return true;
}

運行效率如下所示:


第9題:公交車站間的距離

試題要求如下:

回答(C語言):

int distanceBetweenBusStops(int* distance, int distanceSize, int start, int destination){int dis1 = 0, dis2 = 0;;int s;s = start;while (s != destination) {dis1 += distance[s];s = (s + 1) % distanceSize;}while (s != start) {dis2 += distance[s];s = (s + 1) % distanceSize;}return dis1 < dis2 ? dis1 : dis2;
}

運行效率如下所示:


第10題:有效的括號(2020 嗶哩嗶哩校招筆試題)

試題要求如下:

回答(C語言):

bool isValid(char * s){int top = 0;char* stack = (char*)malloc(strlen(s));if (s==NULL || strlen(s)<=0) return true;for (int i = 0; i<strlen(s); i++){if(s[i]=='(' || s[i]=='{' || s[i]=='['){stack[top++] = s[i];}else{if(--top < 0) return false;if(s[i]==')' && stack[top] != '(') return false;if(s[i]=='}' && stack[top] != '{') return false;if(s[i]==']' && stack[top] != '[') return false;}}if (top > 0) return false;return true;
}

運行效率如下所示:

總結

以上是生活随笔為你收集整理的力扣(LeetCode)刷题,简单题(第21期)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。