2021春季每日一题【week3 未完结】
生活随笔
收集整理的這篇文章主要介紹了
2021春季每日一题【week3 未完结】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 190. 顛倒二進制位
- 77. 翻轉單詞順序
- 74. 搜索二維矩陣
- 15. 二維數組中的查找【思維 雙指針】
- 90. 子集 II【dfs】
- 93. 遞歸實現組合型枚舉
- 1006. 笨階乘【棧】
- 1381. 階乘【思維】
- 面試題 17.21. 直方圖的水量【未完成】
- 592. 雨【未完成】
- 1143. 最長公共子序列【DP】
- 1222. 密碼脫落【未完成 DP】
- 781. 森林中的兔子【思維】
- 3192. 出現次數最多的數【簽到】
190. 顛倒二進制位
class Solution { public:uint32_t reverseBits(uint32_t n) {uint32_t sum=0;for(int i=0;i<=31;i++){if(n>>i&1) sum=sum*2+1;else sum=sum*2;}return sum;} };77. 翻轉單詞順序
class Solution { public:string reverseWords(string s) {reverse(s.begin(),s.end());stringstream l(s);string ans,a;while(l>>a) {reverse(a.begin(),a.end());if(ans.size()) ans+=" ";ans+=a;}return ans;} };74. 搜索二維矩陣
class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target){int x=0,y=0;int n=matrix.size();int m=matrix[0].size();for(int i=0;i<n;i++){for(int j=0;j<m;j++) if(matrix[i][j]==target) return true;}return false;} };15. 二維數組中的查找【思維 雙指針】
class Solution { public:bool searchArray(vector<vector<int>> array, int target) {if(!array.size()) return false;int n=array.size(),m=array[0].size();int i=0,j=m-1;while(i<n&&j>=0){if(array[i][j]==target) return true;else if(array[i][j]>target) j--;else i++;}return false;} };90. 子集 II【dfs】
class Solution { public:set<vector<int>>st;vector<int>ve;int a[105]={0};void dfs(int index,vector<int> nums){if(index==nums.size()){st.insert(ve);return;}ve.push_back(nums[index]);dfs(index+1,nums);ve.pop_back();dfs(index+1,nums);}vector<vector<int>> subsetsWithDup(vector<int>& nums) {sort(nums.begin(),nums.end());dfs(0,nums);vector< vector<int> > ans;for(auto i=st.begin();i!=st.end();i++)ans.push_back(*i);return ans;} };93. 遞歸實現組合型枚舉
#include<bits/stdc++.h> using namespace std; const int N=35; int a[N],st[N],n,m; void dfs(int s,int index) {if(index==m){for(int i=0;i<index;i++) cout<<a[i]<<" ";cout<<endl;return;}for(int i=s;i<=n;i++){if(!st[i]){st[i]=1;a[index]=i;dfs(i,index+1);st[i]=0;}} } int main(void) {cin>>n>>m;dfs(1,0);return 0; }1006. 笨階乘【棧】
class Solution { public:int clumsy(int n) {if(n==1) return 1;char s[10]="*/+-";int k=0;bool flag=true;stack<int>st1; st1.push(n);stack<int>st2;for(int i=n-1;i>=1;i--){if(flag){if(st2.size()){int temp=st1.top()-st2.top();st1.pop(),st2.pop();st1.push(temp);}if(k==0) {int temp=st1.top()*i;st1.pop(); st1.push(temp);k++;}else if(k==1){int temp=st1.top()/i;st1.pop(); st1.push(temp);k++;}else if(k==2){int temp=st1.top()+i;st1.pop(); st1.push(temp);k++;}if(k==3) flag=!flag,k=0;}else{if(!st2.size()) {st2.push(i);continue;}if(k==0) {int temp=st2.top()*i;st2.pop(); st2.push(temp);k++;}else if(k==1){int temp=st2.top()/i;st2.pop(); st2.push(temp);k++;}if(k==2) flag=!flag;}}int ans=st1.top();if(st2.size()) ans-=st2.top();return ans;} };1381. 階乘【思維】
#include<bits/stdc++.h> using namespace std; int main(void) {int sum=1,cnt2=0,cnt5=0,n;cin>>n;for(int i=1;i<=n;i++){int x=i;while(x%2==0) cnt2++,x/=2;while(x%5==0) cnt5++,x/=5;sum=sum*x%10;}for(int i=1;i<=cnt2-cnt5;i++) sum=sum*2%10;cout<<sum;return 0; }面試題 17.21. 直方圖的水量【未完成】
592. 雨【未完成】
1143. 最長公共子序列【DP】
class Solution { public:int longestCommonSubsequence(string text1, string text2) {int f[1010][1010]={0};int n=text1.size(),m=text2.size();text1="0"+text1,text2="0"+text2;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){f[i][j]=max({f[i-1][j-1],f[i-1][j],f[i][j-1]});if(text1[i]==text2[j]) f[i][j]=max(f[i][j],f[i-1][j-1]+1);}}return f[n][m];} };1222. 密碼脫落【未完成 DP】
781. 森林中的兔子【思維】
class Solution { public:int numRabbits(vector<int>& answers) {map<int,int>mp;int sum=0;for(int i=0;i<answers.size();i++) mp[answers[i]]++;for(auto i=mp.begin();i!=mp.end();i++){int a=i->first;int b=i->second;int temp=(b+a)/(a+1)*(a+1);sum+=temp;}return sum;} };3192. 出現次數最多的數【簽到】
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n,x,a[N]; int main(void) {cin>>n;for(int i=0;i<n;i++) cin>>x,a[x]++;int ans=0,cnt=0;for(int i=0;i<N;i++)if(a[i]>cnt) cnt=a[i],ans=i;cout<<ans;return 0; }總結
以上是生活随笔為你收集整理的2021春季每日一题【week3 未完结】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 寒假每日一题(提高组)【Week 4 完
- 下一篇: Acwing第 40 场周赛【完结】