字节飞书一面

问题

  1. redis的大key和热key问题。
  2. 为什么热k影响redis的背后底层原理(比如能抗住1000w qps的redis为什么会被100w 热k给打挂掉)
  3. 热点菜品问题处理方案。
  4. 限流应该怎么做?
  5. 服务降级应该有什么准则
  6. 服务注册和服务发现怎么做的?
  7. 服务注册和服务发现内部实现细节
  8. 权限校验机制怎么做的?
  9. 权限操作的数据安全和操作安全(给我讲讲原理,我的项目是否做了)
  10. 慢查询

手撕

给定一个数n如23121;给定一组数字a如[2 4 9]求由a中元素组成的小于n的最大数

手撕没写出来,但是给过了

全部评论
#include <bits> using namespace std; int res = 0, target = 0, sum = 0; void backtracking(vector<int>& nums) { if (sum >= target) return; res = max(res, sum); for (int i = 0; i < nums.size(); i++) { int t = sum; sum = 10 * sum + nums[i]; backtracking(nums); sum = t; // backtrack } } int main() { vector<int> nums = {2,3,5}; target = 53222355; backtracking(nums); cout << res << endl; return 0; } 这是和朋友讨论一些结果</int></int></bits>
3 回复 分享
发布于 2024-06-17 23:04 广东
手撕可以直接从高位开始枚举然后加二分吧,二分可以离散化之后在BIT上做二分
1 回复 分享
发布于 2024-07-15 13:28 北京
这八股算法都不会
点赞 回复 分享
发布于 2024-07-15 09:17 北京
回溯,代码随想录上有的
点赞 回复 分享
发布于 2024-07-12 20:14 北京
m
点赞 回复 分享
发布于 2024-07-11 17:31
请问是因为你简历写了这些吗?感觉没有计网,java八股哎
点赞 回复 分享
发布于 2024-07-08 21:20 江苏
看着像数位dp
点赞 回复 分享
发布于 2024-06-20 11:00 黑龙江
面完过了多久约的二面哇
点赞 回复 分享
发布于 2024-06-19 22:58 北京
字节这算法考的太难了吧
点赞 回复 分享
发布于 2024-06-19 14:18 浙江
过了吗
点赞 回复 分享
发布于 2024-06-19 01:13 上海
哥们也是在面杭州飞书吗
点赞 回复 分享
发布于 2024-06-18 16:13 江苏

相关推荐

11-03 17:00
门头沟学院
点赞 评论 收藏
分享
import&nbsp;java.util.*;import&nbsp;java.io.*;public&nbsp;class&nbsp;Main&nbsp;{//&nbsp;并查集:父节点映射&nbsp;+&nbsp;秩映射(按秩合并用)public&nbsp;static&nbsp;HashMap&lt;Integer,&nbsp;Integer&gt;&nbsp;parent&nbsp;=&nbsp;new&nbsp;HashMap&lt;&gt;();//&nbsp;查找(路径压缩&nbsp;+&nbsp;自动初始化节点)public&nbsp;static&nbsp;int&nbsp;find(int&nbsp;x)&nbsp;{//&nbsp;节点不存在则初始化:父节点是自己,秩为1parent.putIfAbsent(x,&nbsp;x);//&nbsp;路径压缩(迭代版,避免递归栈溢出)while&nbsp;(!parent.get(x).equals(x))&nbsp;{parent.put(x,&nbsp;parent.get(parent.get(x)));&nbsp;//&nbsp;父节点指向祖父节点x&nbsp;=&nbsp;parent.get(x);}return&nbsp;x;}//&nbsp;合并(按秩合并&nbsp;+&nbsp;路径压缩)public&nbsp;static&nbsp;void&nbsp;merge(int&nbsp;x,&nbsp;int&nbsp;y)&nbsp;{int&nbsp;rootX&nbsp;=&nbsp;find(x);int&nbsp;rootY&nbsp;=&nbsp;find(y);if&nbsp;(rootX&nbsp;==&nbsp;rootY)&nbsp;return;//&nbsp;按秩合并:将秩小的树合并到秩大的树parent.put(rootY,&nbsp;rootX);}//&nbsp;生成统一的边key(避免{a,b}和{b,a}重复)static&nbsp;String&nbsp;getRelationKey(int&nbsp;a,&nbsp;int&nbsp;b)&nbsp;{return&nbsp;a&nbsp;&lt;&nbsp;b&nbsp;?&nbsp;a&nbsp;+&nbsp;&quot;,&quot;&nbsp;+&nbsp;b&nbsp;:&nbsp;b&nbsp;+&nbsp;&quot;,&quot;&nbsp;+&nbsp;a;}public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;throws&nbsp;IOException&nbsp;{//&nbsp;替换Scanner为BufferedReader,提升输入效率BufferedReader&nbsp;br&nbsp;=&nbsp;new&nbsp;BufferedReader(new&nbsp;InputStreamReader(System.in));String[]&nbsp;parts&nbsp;=&nbsp;br.readLine().split(&quot;&nbsp;&quot;);int&nbsp;n&nbsp;=&nbsp;Integer.parseInt(parts[0]);int&nbsp;m&nbsp;=&nbsp;Integer.parseInt(parts[1]);int&nbsp;q&nbsp;=&nbsp;Integer.parseInt(parts[2]);//&nbsp;存储原始边Set&lt;String&gt;&nbsp;edges&nbsp;=&nbsp;new&nbsp;HashSet&lt;&gt;();for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;m;&nbsp;++i)&nbsp;{parts&nbsp;=&nbsp;br.readLine().split(&quot;&nbsp;&quot;);int&nbsp;a&nbsp;=&nbsp;Integer.parseInt(parts[0]);int&nbsp;b&nbsp;=&nbsp;Integer.parseInt(parts[1]);edges.add(getRelationKey(a,&nbsp;b));}//&nbsp;存储有效操作(过滤无效删除)ArrayList&lt;int[]&gt;&nbsp;ops&nbsp;=&nbsp;new&nbsp;ArrayList&lt;&gt;();for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;q;&nbsp;++i)&nbsp;{parts&nbsp;=&nbsp;br.readLine().split(&quot;&nbsp;&quot;);int&nbsp;op&nbsp;=&nbsp;Integer.parseInt(parts[0]);int&nbsp;a&nbsp;=&nbsp;Integer.parseInt(parts[1]);int&nbsp;b&nbsp;=&nbsp;Integer.parseInt(parts[2]);if&nbsp;(op&nbsp;==&nbsp;1)&nbsp;{String&nbsp;key&nbsp;=&nbsp;getRelationKey(a,&nbsp;b);if&nbsp;(edges.contains(key))&nbsp;{edges.remove(key);ops.add(new&nbsp;int[]{op,&nbsp;a,&nbsp;b});}}&nbsp;else&nbsp;{ops.add(new&nbsp;int[]{op,&nbsp;a,&nbsp;b});}}//&nbsp;初始化:合并所有未被删除的边(最终状态)for&nbsp;(String&nbsp;key&nbsp;:&nbsp;edges)&nbsp;{String[]&nbsp;nodes&nbsp;=&nbsp;key.split(&quot;,&quot;);int&nbsp;a&nbsp;=&nbsp;Integer.parseInt(nodes[0]);int&nbsp;b&nbsp;=&nbsp;Integer.parseInt(nodes[1]);merge(a,&nbsp;b);}//&nbsp;倒序处理操作,记录答案List&lt;Boolean&gt;&nbsp;answers&nbsp;=&nbsp;new&nbsp;ArrayList&lt;&gt;();for&nbsp;(int&nbsp;i&nbsp;=&nbsp;ops.size()&nbsp;-&nbsp;1;&nbsp;i&nbsp;&gt;=&nbsp;0;&nbsp;i--)&nbsp;{int[]&nbsp;op&nbsp;=&nbsp;ops.get(i);if&nbsp;(op[0]&nbsp;==&nbsp;1)&nbsp;{//&nbsp;原删除操作&nbsp;→&nbsp;逆操作:合并merge(op[1],&nbsp;op[2]);}&nbsp;else&nbsp;{//&nbsp;原查询操作:判断是否连通boolean&nbsp;connected&nbsp;=&nbsp;find(op[1])&nbsp;==&nbsp;find(op[2]);answers.add(connected);}}//&nbsp;逆序输出答案for&nbsp;(int&nbsp;i&nbsp;=&nbsp;answers.size()&nbsp;-&nbsp;1;&nbsp;i&nbsp;&gt;=&nbsp;0;&nbsp;--i)&nbsp;{System.out.println(answers.get(i)&nbsp;?&nbsp;&quot;Yes&quot;&nbsp;:&nbsp;&quot;No&quot;);}}}
投递美团等公司9个岗位
点赞 评论 收藏
分享
评论
6
63
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务