想问下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

相关推荐

不愿透露姓名的神秘牛友
07-25 18:02
来组里2个月了,天天让打杂,写的代码不超过200行。现在已经开始摆烂冲秋招了。我感觉4个月,就算周六日全天睡觉,周一到周五一直看黑马也比我来节子实习学到的东西多。
小熊梦奇:😅节子那么多文档,你是一个都不看啊。 大厂的意义在于内部系统对你开放,看明白事情起因经过结果解决措施,实在看不明白,直接聊天系统搜到对应团队去问当时的负责人,大部分情况下都会给你解答。 这才是大厂实习的精髓
实习生的蛐蛐区
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-23 14:10
码农索隆:成年人最直白的答复:已读不回
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-25 17:13
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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