小红书笔试,我震惊了。

第一题,一直91%。就搞不懂。看了题目,才发现,原理数组长度为0时,要输出-1。😅#春招##小红书#
全部评论
+1
2 回复 分享
发布于 2022-03-13 20:32
第一题这样     let N = nums.length     let total1 = 0     for (let i = 0; i < N; i++) {         if (nums[i] === 1)             total1++         if (nums[i] === 0)             nums[i] = 1         else             nums[i] = -1     }     console.log(nums)     let current = 0, sum = nums[0]     for (const num of nums) {         current = Math.max(current + num, num)         sum = Math.max(current, sum)     }     console.log(sum + total1)
1 回复 分享
发布于 2022-03-13 21:43
坐标北京,外企,校招还有hc,三餐免费,出国团建,不卷不卷,go和python岗位,简历邮箱chunrong.chen@mxplayer.in 公司:MX PLAYER
点赞 回复 分享
发布于 2022-04-19 17:41
一直笔试完成,没HC了吧
点赞 回复 分享
发布于 2022-03-29 21:27
老哥,收到面试邀请了吗?
点赞 回复 分享
发布于 2022-03-23 18:38
但是…数组长度为0返回-1 我考虑了的情况下依旧91% 我都迷了😮‍💨
点赞 回复 分享
发布于 2022-03-13 22:54
第三题的: #include<bits/stdc++.h> using namespace std; const int N=1e5+5,M=20; int n,m; int a[N]; int maxf[N][M]; int minf[N][M]; int querymax(int l,int r) {     int len=r-l+1;     int k=(log(len)/log(2));     return max(maxf[l][k],maxf[r-(1<<k)+1][k]); }  int querymin(int l,int r) {     int len=r-l+1;     int k=(log(len)/log(2));     return min(minf[l][k],minf[r-(1<<k)+1][k]); }  int main() {     cin>>n>>m;     for(int i=1;i<=n;i++) cin>>a[i];     for(int j=0;j<M;j++){       for(int i=1;i+(1<<j)-1<=n;i++) {         if(j==0) maxf[i][j]=a[i];         else{             maxf[i][j]=max(maxf[i][j-1],maxf[i+(1<<(j-1))][j-1]);         }       }     }     for(int j=0;j<M;j++){       for(int i=1;i+(1<<j)-1<=n;i++) {         if(j==0) minf[i][j]=a[i];         else{             minf[i][j]=min(minf[i][j-1],minf[i+(1<<(j-1))][j-1]);         }       }     }     while(m--){         int x,y;cin>>x>>y;         cout<<querymax(x,y)-querymin(x,y)<<endl;     }     return 0; }
点赞 回复 分享
发布于 2022-03-13 22:35
第二题的 #include <bits/stdc++.h> using namespace std; const int N = 10005; int n,m,k; int a[N][N]; int dp[N][N]; int mod =1e9+7; int main(){     cin>>n>>m>>k;     while(k--) {       int x,y;cin>>x>>y;a[x][y] = 1;     }     dp[0][1] = 1;     for(int i=1;i<=n;i++) {       for(int j=1;j<=m;j++) {         if(!a[i][j]) dp[i][j] = (dp[i-1][j]+dp[i][j-1])%mod;         else dp[i][j] = 0;       }     }     cout<<dp[n][m];     return 0;  }
点赞 回复 分享
发布于 2022-03-13 22:33
这是第一题的: #include <bits/stdc++.h> using namespace std; const int N = 100005; int n; int a[N]; int s[N]; int all; int maxadd; int q[N]; int t = 0,h = 1; int main(){     cin>>n;     for(int i=1;i<=n;i++) cin>>a[i];     for(int i=1;i<=n;i++) {       s[i]=s[i-1]+a[i];     }     all = s[n];     int l = 1,r = 1;     for(;l<=n;l++) {         if(!a[l]) break;     }     r = l;     while(l<=n&&r<=n) {                  int call = r-l+1;         int c1 = s[r]-s[l-1];         int c0 = call-c1;         int addd = c0-c1;         maxadd = max(maxadd,addd);         if(c1>=c0) {           r++;l = r;continue;         }else if(c1==call){             while(l<=n&&l==r&&(s[r]-s[l-1])==(r-l+1)){ //l==r             l++,r++;             // call = r-l+1;             // c1 = s[r]-s[l-1];             // c0 = call-c1;           }         }else r++;                  // cout<<l<<" "<<r<<endl;     }     cout<<all+maxadd<<endl;     return 0;  }
点赞 回复 分享
发布于 2022-03-13 22:33
没有一到都a不出
点赞 回复 分享
发布于 2022-03-13 21:48
离谱的是Java和c限时一样,我拿Java写了一遍超时,然后换c++就行了😓
点赞 回复 分享
发布于 2022-03-13 21:16
第二题有AC的吗,求代码
点赞 回复 分享
发布于 2022-03-13 21:11
奇怪,为什么我每题都没AC🤣,自测数据都没问题呀
点赞 回复 分享
发布于 2022-03-13 21:08
我为什么发现了这个改了之后还是91😂
点赞 回复 分享
发布于 2022-03-13 21:07
@coldice23 怎么说
点赞 回复 分享
发布于 2022-03-13 21:05
第一题我看了好几遍题目都没有发现-1😂😂
点赞 回复 分享
发布于 2022-03-13 21:03
是同一套题目吗?为啥我感觉不简单啊😅 翻转游戏,有障碍物的不同路径,礼物最大价值-最小价值
点赞 回复 分享
发布于 2022-03-13 20:52
所以第二题是怎么弄得,还有O(m*n)更低的?
点赞 回复 分享
发布于 2022-03-13 20:42
有没有同胞一样,为这个卡了一会
点赞 回复 分享
发布于 2022-03-13 20:31

相关推荐

ResourceUtilization:算法很难了,现在都需要相关论文还有对应的实习,可以先试试中厂
点赞 评论 收藏
分享
牛客965593684号:假的,字节hr都是不会找你内推的,直接就是同学我们约个面试?他们有权限直接捞你的。
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

更多
牛客网
牛客企业服务