楼主: hj735
跳转到指定楼层
上一主题 下一主题
收起左侧

G家的onsite

🔗
Xin_walker 2015-6-20 07:20:27 | 只看该作者
全局:
hj735 发表于 2015-6-11 11:59
[1,3,4,7,8,9], 至少有3个数大于3,而没有至少4个数大于4

那【1,2,4,7,8,9】是不是就没有了?2的话至少有2个数大于2,但至少有2+1个数大于2+1这个也成立~
回复

使用道具 举报

🔗
 楼主| hj735 2015-6-20 07:26:51 | 只看该作者
全局:
Xin_walker 发表于 2015-6-20 07:20
那【1,2,4,7,8,9】是不是就没有了?2的话至少有2个数大于2,但至少有2+1个数大于2+1这个也成立~

答案是3 h-index不一定必须是存在于数组中
回复

使用道具 举报

🔗
Xin_walker 2015-6-20 08:02:07 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
 楼主| hj735 2015-6-20 09:07:29 | 只看该作者
全局:
Xin_walker 发表于 2015-6-20 08:02
哦!谢谢!再确认一下最终结果:
1.如果数组最大值

对的 其实题目给的都是正整数
回复

使用道具 举报

🔗
Xin_walker 2015-6-20 09:45:52 | 只看该作者
全局:
hj735 发表于 2015-6-20 09:07
对的 其实题目给的都是正整数

哦哦,谢啦~
回复

使用道具 举报

🔗
jaly50 2015-6-21 23:45:10 | 只看该作者
全局:
round 2我会这样写,不知道好不好:
  1.         //a has been desc-sorted
  2.         public static int hidx(int[] a) {
  3.                 int l = 0, r =a.length-1;
  4.                 while (l<=r) {
  5.                         int mid = (l+r)/2;
  6.                         if (mid > a[mid]) {
  7.                                 r = mid -1;
  8.                         }
  9.                         else if (mid <= a[mid] && (mid==a.length-1 || mid+1>a[mid+1])) {
  10.                                 return mid;
  11.                         }
  12.                         else l= mid+1;
  13.                 }
  14.                 return a.length;
  15.                
  16.         }
复制代码
回复

使用道具 举报

🔗
jaly50 2015-6-22 00:27:59 | 只看该作者
全局:
round 4 我会这么写,欢迎指正~
  1. import java.util.Arrays;
  2. import java.util.PriorityQueue;

  3. /*
  4. * 给一个字符串,该字符串由一些可能会重复的字符组成,重新排列这个字符串使得没有相邻的字符是相同字符。如aab变成aba
  5. *
  6. * Using priority Queue, delete 2 node each time till queue is empty
  7. */
  8. public class Rearrange {
  9.         // create class to match char and its freq
  10.         static class Node implements Comparable<Node>{
  11.                 char val;
  12.                 int freq;
  13.                 Node(char val, int freq){
  14.                         this.val = val;
  15.                         this.freq = freq;
  16.                 }
  17.                 @Override
  18.                 // Node with more freq would be in the front
  19.                 public int compareTo(Node that) {
  20.                         if (this.freq > that.freq) {
  21.                                 return -1;
  22.                         }
  23.                         else if (this.freq < that.freq) {
  24.                                 return 1;
  25.                         }
  26.                        
  27.                         return 0;
  28.                 }
  29.         }
  30.         public static String rearrage(String s){
  31.                 if (s==null || s.length()<=1) return s;
  32.                 // Build a max-freq priority queue
  33.                 char[] chs = s.toCharArray();
  34.                 int[] char_frequency = new int[128];
  35.                 Arrays.fill(char_frequency,0);
  36.                 for (char ch:chs) {
  37.                         char_frequency[ch]+=1;
  38.                 }
  39.                 PriorityQueue<Node> pq = new PriorityQueue<Node>();
  40.                 for (int i=0; i<char_frequency.length; i++) {
  41.                         if (char_frequency[i]>0) {
  42.                                 Node x = new Node((char)i,char_frequency[i]);
  43.                                 //System.out.println(x.val+"-->"+x.freq);
  44.                                 pq.offer(x);
  45.                         }
  46.                 }
  47.                 //if freq of first ele > n/2+1, return false
  48.                 if (pq.peek().freq>(s.length()+1)/2)  return null;
  49.                
  50.                 //get new string from queue
  51.                 StringBuilder ans = new StringBuilder();
  52.                 while (!pq.isEmpty()) {
  53.                         Node first = pq.poll();
  54.                         if (pq.isEmpty()) {
  55.                                 ans.append(first.val);
  56.                                 break;
  57.                         }
  58.                         Node second = pq.poll();
  59.                         ans.append(first.val+""+second.val);

  60.                         first.freq-=1;
  61.                         second.freq-=1;
  62.                         if (first.freq>0) pq.offer(first);
  63.                         if (second.freq>0) pq.offer(second);
  64.                 }
  65.                 return ans.toString();
  66.         }

  67.         public static void main(String[] args) {
  68.                 // TODO Auto-generated method stub
  69.         System.out.println(rearrage("BCDAGAAAA"));
  70.         }

  71. }
复制代码
回复

使用道具 举报

🔗
 楼主| hj735 2015-6-23 05:30:59 | 只看该作者
全局:
jaly50 发表于 2015-6-22 00:27
round 4 我会这么写,欢迎指正~

目测是正解,思路和我的有点不一样,都能完成任务
回复

使用道具 举报

🔗
bluestarwing 2015-6-23 05:33:42 | 只看该作者
全局:
Cong!!!lz赞,去了什么组?
回复

使用道具 举报

🔗
 楼主| hj735 2015-6-23 05:38:20 | 只看该作者
全局:
jaly50 发表于 2015-6-21 23:45
round 2我会这样写,不知道好不好:

目测有效,只不过你写反了,数组是升序排列,你假设是降序排列,所有条件反过来了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表