想问下360的hash桶深度到底要怎样的输出格式

想问下360的hash桶深度到底要怎样的输出格式,本地正确,提交一直错误答案#360公司##笔试题目#
全部评论
两道题全AC #include <iostream> #include <string> #include <set> using namespace std; int main1() {     int n1, n2;     cin >> n1 >> n2;     int num = 0;     if (n1 > n2)         num++;     while (cin >> n1)     {         if (n2 > n1)         {             num++;             n2 = n1;         }         if (num > 1)         {             cout << "No" << endl;             break;         }             else         {             cout << "Yes" << endl;             break;         }     }     system("pause");     return 0; } int main() {     string s = "4/1-20,30-52,100";     int hashsize = 0;     bool flag = false;     int key1[1000]{ 0 };//存储区间值     int key[1000]{ 0 }; //存储单个值     int index1 = 0;     int index2 = 0;     int num = 0;     int len = s.length();     for (int i = 0; i < len; i++)     {                  if (s[i] == '/')         {             hashsize = num;             num = 0;         }         else if(s[i] == '-')         {             key1[index1++] = num;             flag = true;             num = 0;         }         else if( s[i] == ',')         {             if (flag)             {                 key1[index1++] = num;                 flag = false;                 num = 0;             }             else             {                 key[index2++] = num;                 num = 0;             }         }         else         {             num *= 10;             num += (s[i] - '0');         }     }     if (flag)         key1[index1++] = num;     else         key[index2++] = num;     set<int> st[100];     for (int i = 0; i < index1; i += 2)     {         for (int j = key1[i]; j <= key1[i + 1]; j++)         {             int m = j % hashsize;             st[m].insert(j);         }     }     for (int i = 0; i < index2; i++)     {         int m = key[i] % hashsize;         st[m].insert(key[i]);     }     cout << endl;     int max = 0;     int maxindex = 0;     for (int i = 0; i < 100; i++)     {         if (st[i].size() > max)         {             max = st[i].size();             maxindex = i;         }     }     cout << max << "-" << maxindex << "-";     for (set<int>::reverse_iterator it = st[maxindex].rbegin(); it != st[maxindex].rend(); it++)     {         if(it == --st[maxindex].rend())             cout << *it;         else             cout << *it << " ";     }     system("pause");     return 0; }
点赞 回复 分享
发布于 2019-04-16 22:14
贴个c++的,AC。 #include <bits/stdc++.h> using namespace std; int main(int argc, char const *argv[]) {     ios::sync_with_stdio(0);cin.tie(0);     //处理输入     string in; cin >> in;     for(auto& x : in) if(x == '/' || x == ',') x = ' ';     stringstream ss(in);     int hashsize; ss >> hashsize;     map<int, set<int, greater<int>>> mmp;     // 处理key     while(ss >> in) {         bool flag = 0;         for(auto& x : in) if(x == '-') {             x = ' '; flag = 1; break;         }     // 区间key和单独key         if(flag) {             stringstream sss(in);             int l, r; sss >> l >> r;             for(int i = l; i <= r; ++i) {                 int idx = i%hashsize;                 mmp[idx].insert(i);             }         } else {             stringstream sss(in);             int tmp; sss >> tmp;             int idx = tmp%hashsize;             mmp[idx].insert(tmp);         }     }     int sum = 0, ans_id;     for(auto x : mmp) if(x.second.size() > sum) {         ans_id = x.first, sum = x.second.size();     }     set<int, greater<int>>& anset = mmp[ans_id];     vector<int> ans;     for(auto x : anset) ans.push_back(x);     int cnt = ans.size();     // 个数-哈希值-元素1 > 元素2 > 元素3     cout << cnt << "-" << ans_id << "-";     int sz = ans.size();     cout << ans[0];     for(int i = 1; i < sz; ++i)         cout << " " << ans[i];     cout << endl;     return 0; }
点赞 回复 分享
发布于 2019-04-16 21:23
第一题没给n  输入难道不用先输n的值吗  
点赞 回复 分享
发布于 2019-04-16 21:19
只AC了%55左右吧,不知道啥原因,这输入输出太坑 import java.util.HashMap; import java.util.Map.Entry; import java.util.Scanner; import java.util.TreeSet; public class Main2 {     public static void main(String[] args)     {         Scanner scanner = new Scanner(System.in);         String str = scanner.nextLine();         String[] strs = str.split("/");         int hashSize = Integer.valueOf(strs[0]);         String[] keys = null;         if(strs[1].contains(","))         {             keys = strs[1].split(",");         }         else         {             keys = new String[1];             keys[0] = strs[1];         }         TreeSet<Integer> set = new TreeSet<Integer>();         HashMap<Integer,Integer> map = new HashMap<>();         int[] hash = new int[hashSize];         for(int i = 0; i < keys.length; i++)         {             if(keys[i].contains("-"))             {                 String[] s = keys[i].split("-");                 int left = Integer.valueOf(s[0]);                 int right = Integer.valueOf(s[1]);                 for(int j = left; j <= right; j++)                 {                     int mod = j % hashSize;                     hash[mod]++;                     map.put(j,mod);                 }             }             else             {                 int mod = Integer.valueOf(keys[i]) % hashSize;                 hash[mod]++;                 map.put(Integer.valueOf(keys[i]),mod);             }         }         int max = 0;         int maxIndex = -1;         for(int i = 0; i < hash.length; i++)         {             if(hash[i] > max)             {                 maxIndex = i;                 max = hash[i];             }         }         for(Entry<Integer,Integer> entry : map.entrySet())         {             if(entry.getValue() == maxIndex)             {                 set.add(entry.getKey());             }         }         int[] arr = new int[set.size()];         int index = arr.length-1;         for(Integer i : set)         {             arr[index--] = i;         }         System.out.print(max + "-" + maxIndex);         System.out.print("-");         for(int i = 0; i < arr.length; i++)         {             System.out.print(arr[i]);             if(i < arr.length-1)             {                 System.out.print(" ");             }         }         //4/1-20,100         scanner.close();     } }
点赞 回复 分享
发布于 2019-04-16 21:04
我本地写完没粘上去就到时了😂
点赞 回复 分享
发布于 2019-04-16 20:53
刚参加完,正好这两道题都AC了,分享一下你说的这题的代码,排版可能有点乱,毕竟时间紧张 def f(key,hashSize):     return key%hashSize x = input() #x = "4/1,1,1,1,1,2" hashSize,keys = x.split("/") hashSize = int(hashSize) keys = [i for i in keys.split(",")] key = [] for i in keys:     if "-" in i:         t1,t2 = i.split("-")         t1,t2 = int(t1),int(t2)         for j in range(t1,t2+1):             if int(j) not in key:                 key.append(int(j))     else:         if int(i) not in key:             key.append(int(i)) hashTable = [] for i in range(hashSize):     hashTable.append([])      for i in key:     hashTable[f(i,hashSize)].insert(0,i) maxLen = max([len(i) for i in hashTable]) for i in range(len(hashTable)):     if len(hashTable[i]) ==maxLen:         break # output: t = [] for j in hashTable[i]:     if j not in t:         t.append(j) t = [ str(j) for j in t] print(str(maxLen)+"-"+str(i)+"-"+" ".join(t))
点赞 回复 分享
发布于 2019-04-16 20:48
我去又凉了,两道题感觉描述都很有问题,特别第一题,半天没看懂问的啥
点赞 回复 分享
发布于 2019-04-16 20:44
感觉牛客网就够坑了,今天发现一个更坑的,***不能学学lc嘛🤣
点赞 回复 分享
发布于 2019-04-16 20:39
输入是什么格式?真心看不懂,字符串?
点赞 回复 分享
发布于 2019-04-16 20:33
你的是咋写的?我也是
点赞 回复 分享
发布于 2019-04-16 20:29

相关推荐

从大一开始就开始学习Java,一路走来真的不算容易,每次面试都被压力,不过这次终于达成了自己的一大心愿!时间线和面经:8.17-投递9.1-一面实习+项目拷打看门狗机制讲一下redis加锁解锁的本身操作是什么Lua脚本是干什么的udp和tcp讲一下流量控制讲一下令牌桶算法说一下大端和小端是什么线程和协程有什么区别怎么切换协程切换的时候具体做了什么对于程序来说,你刚才提到的保存和恢复现场,这个现场有哪些信息udp优势现在有一个客户端和服务端,要实现TCP的通信,我们的代码要怎么写服务器怎么感知有新的连接怎么处理多个客户端的请求连接TCP怎么处理粘包和分包现在有两个文件,然后每个文件都有一亿条URL,每个的长度都很长,要怎么快速查找这两个文件共有的URLHashmap底层说一下怎么尽量提升插入和查询的效率如果要查找快,查询快,还有解决非空的问题,怎么做LoadingCache了解吗手撕:堆排序9.4-二面部门的leader,超级压力面拷打实习+项目,被喷完全没东西类的加载到垃圾回收整个底层原理讲一遍类加载谁来执行类加载器是什么东西,和进程的关系Java虚拟机是什么东西,和进程的关系如果我们要执行hello&nbsp;world,那虚拟机干了什么呢谁把字节码翻译成机器码,操作时机是什么Java虚拟机是一个执行单元吗Java虚拟机和操作系统的关系到底什么,假如我是个完全不懂技术的人,举例说明让我明白一个操作系统有两个Java程序的话,有几个虚拟机有没有单独的JVM进程存在启动一个hello&nbsp;world编译的时候,有几个进程JVM什么时候启动比如执行一条Java命令的时候对应一个进程,然后这个JVM虚拟机到底是不是在这个进程里面,还是说要先启动一个JVM虚拟机的进程垃圾回收机制的时机能手动触发垃圾回收吗垃圾回收会抢占业务代码的CPU吗垃圾回收算法简单说说垃圾回收机制的stop&nbsp;the&nbsp;world存在于哪些时机垃圾回收中的计算Region的时候怎么和业务代码并行执行假如只有一个线程,怎么实现并行Java为什么要这么实现Java效率比C++慢很多,那为什么还要这样实现Java虚拟机到底是什么形式存在的说一下Java和C++的区别还有你对Java设计理念的理解无手撕面试结束的时候,我真的汗流浃背了,面试官还和我道歉,说他是故意压力面想看看我的反应的,还对我给予了高度评价:我当面试官这么多年,你是我见过最好的一个9.9-三面临时通知的加面,就问了三十分钟项目9.11-hr面问过往经历,未来计划,想从腾讯实习中得到什么?当场告知leader十分满意我,所以直接ochr面完一分钟官网流程变成录用评估中,30分钟后mt加微信告知offer正在审批9.15-offer这一次腾讯面试体验真的不错,每个面试官能感觉到专业能力很强,反馈很足,比起隔壁某节真是好太多以后就是鹅孝子了
三本咋了:当面试官这么多年你是我见过的最好的一个
你面试被问到过哪些不会的...
点赞 评论 收藏
分享
10-09 16:12
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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