360 3-6笔试 笔经
40 选择 + 2算法题 1h
选择题挺八股的,c++,java,数据库,数据机构啥题都有,小半年没看八股了,有一半不确定
算法题比较简单,就俩模拟题
第一个 求字符串是否符合要求
第二个给定n<=1e19,q<=100,代表1-n都是黑色的,每次次操作将l到r内颜色换一下,求1-n 内 颜色为黑色的个数 n <= 1e18, 奈何q太小才100,直接暴力模拟即可。记录一下所有黑色的l到r,按左端点排序,然后把重合的线段合并一下。 我就直接四种情况判断了(就判断线段相交啥的位置情况,然后生成新的区间),整体复杂度q^2log(q),写的有点傻不过能过就行 ,好久没写笔试了不太行了,写的老慢了hhh
*对了说一下正事,字节内推了,坐标字节幸福了客户端,躺平组,平均早11晚9,双周三活动日以及每周五7点下班,平均1-2月一次团建,一人一月团建费150,干饭,ktv,卡丁车等等,周边还有带泳池的免费健身房,简历私我即可帮你投,无历史原因大概率可以约面,组里大约还有8+hc,实习转正率高达90%,还能给你修改简历提供面经共享消息,马上回去做毕设了,想给组里招点人,来了大家就是兄弟哇。
q 2271277728
v 178****3236
企业邮箱 lihengli@bytedance.com
实习大四春招均可。
简历给我我给你投!
简历给我我给你投!
简历给我我给你投!
要投其他组的不要。 考虑幸福里后端算法岗前端产品测试开发的也可以给你投,想投其他部门的不要找俺啦
*
第一个 求字符串是否符合要求
#include using namespace std; int judge(string s){ if(s.size() > 10) return 0; for (int i =0; s[i]; i++){ if( (s[i] >= 'a' && s[i] = 'A' && s[i] <= 'Z')) ; else return 0; } return 1; } int main() { int n, m; cin >> n; string s; int num = 0; for (int i = 1; i <= n; i++) { cin >> s; num += judge(s); } cout << num << endl; return 0; }
*第二个q次操作每次讲l到r内颜色换一下,求1-n 内 颜色为黑色的个数 n <= 1e18, 奈何q太小才100,直接暴力模拟即可。记录一下所有黑色的l到r,按左端点排序,然后把重合的线段合并一下。 我就直接四种情况判断了,整体复杂度q^2log(q) *
#include using namespace std; const int maxx = 1e3+7; long long n, m; int cnt = 0; struct stu{ long long l, r, id; }A[maxx]; int cmp (stu a, stu b){ if( a.l == b.l) { return a.r < b.r; } return a.l < b.l; } long long solve(){ long long num = cnt; long long l, r; l = A[cnt].l; r= A[cnt].r; for(int i = 1; i < num; i++){ if(A[i].l > A[i].r) continue; if( A[i].l > r || A[i].r < l) ; else if(A[i].l = r){ A[cnt].l = A[i].l; A[cnt].r = l - 1; A[i].l = r + 1; break; } else if(A[i].l >= l && A[i].r <= r){ A[cnt].l = A[i].r + 1; A[i].r = A[i].l - 1; A[i].l = l; } else if(A[i].l >= l){ A[cnt].r = A[i].l - 1; A[i].l = r + 1; break; } else if(l >= A[i].l){ A[cnt].l = A[i].r + 1; A[i].r = l -1; } l = A[cnt].l; r = A[cnt].r; } sort(A + 1, A + 1 + cnt, cmp); long long ans = n; for(int i = 1; i <= cnt; i++){ if(A[i].l <= A[i].r){ ans -= (A[i].r - A[i].l + 1); } } return ans; } int main(){ cin >> n >> m; for (int i = 1; i <= m; i++){ ++cnt; cin >> A[cnt].l >> A[cnt].r; cout<< solve() <<endl; } return 0; }#实习经验分享##校招##实习##内推##360公司#