《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 790|回复: 2
收起左侧

LiveRamp 日常跪经

[复制链接] |试试Instant~ |关注本帖
goolloo 发表于 2016-11-19 08:34:23 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@LiveRamp - 网上海投 - HR筛选 在线笔试 |Failfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
日常跪经, 昨晚OA就拒了

今年的老题目
1. 输入a,b,c,d四个数字,保证是0~9,求最大的24小时制数字。范围是00:00~23:59。不要求performance。
2.输入int数组,求最短的子集,把子集排序以后就可以使整个数组是排序过的。
3.解释第二题,why liveramp?


第二天早上就挂了…………
附上我的代码, 路过大神看看有没有什么问题,虽然我觉得就是存粹的简历挂了. 1point3acres.com/bbs

1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485import java.util.*;public class maxTime {        public String solution(int A, int B, int C, int D){                List<Integer> digits_4 = new ArrayList<>(Arrays.asList(A, B, C, D));                List<Integer> validTimes = new ArrayList<>();                                for(int h1: digits_4){                        List<Integer> digits_3 = new ArrayList<>(digits_4);                        digits_3.remove((Object)h1);                        for(int h2: digits_3){                                List<Integer> digits_2 = new ArrayList<>(digits_3);                                digits_2.remove((Object)h2);                                int m1 = digits_2.get(0);                                int m2 = digits_2.get(1);                                                                int time = h1*1000 + h2*100 + m1*10 + m2;                                if(isValidTime(time)){                                        validTimes.add(time);                                }                                                                time = h1*1000 + h2*100 + m2*10 + m1;                                if(isValidTime(time)){                                        validTimes.add(time);                                }                        }                }                                                int maxTime = findMaxTime(validTimes);                                return time_IntToString(maxTime);        }                private String time_IntToString(int time){                String result = "";                if(time >= 0){                        result += time/1000;                        result += time%1000/100;                        result += ":";                        result += time%100/10;                        result += time%10;                }else{                        result = "NOT POSSIBLE";                }                                return result;        }                private int findMaxTime(List<Integer> times){                int max = -1;                                for(int time: times){                        if(time > max){                                max = time;                        }                }                                return max;        }                private boolean isValidTime(int time){                if(isValidHour(time/100) && isValidMinute(time%100)){                        return true;                }else{                        return false;                }        }                private boolean isValidHour(int hour){                if(hour >= 0 && hour <= 23){                        return true;                }else{                        return false;                }        }                private boolean isValidMinute(int min){                if(min >= 0 && min <= 59){                        return true;                }else{                        return false;                }        }}



1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667import java.util.*;public class rearrangeInterval {        public int solution(int[] arr){                // corner cases                if(arr.length < 2){                        return 0;                }                                // left and right index to record the interval                int indexL = arr.length;                int indexR = -1;                                // find out of order part                for(int i = 1; i < arr.length; i++){                        if(arr[i > arr[i]){                                // out of order                                indexL = i-1;                                break;                        }                }                                // all in order                if(indexL == arr.length){                        return 0;                }                                // find out of order right boundary                for(int i = arr.length-1; i >= 0; i--){                        if(arr[i > arr[i]){                                indexR = i;                                break;                        }                }                                // find min and max in 'out of order' interval                int min = Integer.MAX_VALUE;                int max = Integer.MIN_VALUE;                for(int i = indexL; i <= indexR; i++){                        if(arr[i < min){                                min = arr[i];                        }                                                if(arr[i > max){                                max = arr[i];                        }                }                                // re-check left 'in-order' part                for(int i = 0; i < indexL; i++){                        if(arr[i > min){                                indexL = i;                                break;                        }                }                                // re-check right 'in-order' part                for(int i = arr.length-1; i > indexR; i--){                        if(arr[i < max){                                indexR = i;                                break;                        }                }                                return indexR - indexL + 1;        }}



 楼主| goolloo 发表于 2016-11-19 08:36:50 | 显示全部楼层
用html的格式还爆了,试试discuz自带的吧。。。
  1. import java.util.*;

  2. public class rearrangeInterval {
  3.         public int solution(int[] arr){
  4.                 // corner cases-google 1point3acres
  5.                 if(arr.length < 2){
  6.                         return 0;
  7.                 }. From 1point 3acres bbs
  8.                
  9.                 // left and right index to record the interval
  10.                 int indexL = arr.length;
  11.                 int indexR = -1;
  12.                 . 1point 3acres 璁哄潧
  13.                 // find out of order part
  14.                 for(int i = 1; i < arr.length; i++){
  15.                         if(arr[i-1] > arr[i]){
    鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  16.                                 // out of order. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  17.                                 indexL = i-1;
  18.                                 break;
  19.                         }
  20.                 }
  21.                
  22.                 // all in order
  23.                 if(indexL == arr.length){. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  24.                         return 0;
  25.                 }
  26.                
  27.                 // find out of order right boundary
  28.                 for(int i = arr.length-1; i >= 0; i--){
  29.                         if(arr[i-1] > arr[i]){
  30.                                 indexR = i;. Waral 鍗氬鏈夋洿澶氭枃绔,
  31.                                 break;
  32.                         }
  33.                 }
  34.                
  35.                 // find min and max in 'out of order' interval
  36.                 int min = Integer.MAX_VALUE;
  37.                 int max = Integer.MIN_VALUE;
  38.                 for(int i = indexL; i <= indexR; i++){. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  39.                         if(arr[i] < min){
  40.                                 min = arr[i];
  41.                         }
  42.                         
  43.                         if(arr[i] > max){
  44.                                 max = arr[i];
  45.                         }
  46.                 }
  47.                
  48.                 // re-check left 'in-order' part
  49.                 for(int i = 0; i < indexL; i++){
  50.                         if(arr[i] > min){
  51.                                 indexL = i;
  52.                                 break;
  53.                         }
  54.                 }
  55.                
  56.                 // re-check right 'in-order' part
  57.                 for(int i = arr.length-1; i > indexR; i--){
  58.                         if(arr[i] < max){
  59.                                 indexR = i;-google 1point3acres
  60.                                 break;
  61.                         }
  62.                 }
  63.                
  64.                 return indexR - indexL + 1;
  65.         }
  66. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| goolloo 发表于 2016-11-19 08:37:21 | 显示全部楼层
  1. package liveramp;
  2. import java.util.*;

  3. public class maxTime {
  4.         public String solution(int A, int B, int C, int D){
  5.                 List<Integer> digits_4 = new ArrayList<>(Arrays.asList(A, B, C, D));
  6.                 List<Integer> validTimes = new ArrayList<>();.1point3acres缃
  7.                
  8.                 for(int h1: digits_4){
  9.                         List<Integer> digits_3 = new ArrayList<>(digits_4);.鏈枃鍘熷垱鑷1point3acres璁哄潧
  10.                         digits_3.remove((Object)h1);
  11.                         for(int h2: digits_3){
  12.                                 List<Integer> digits_2 = new ArrayList<>(digits_3);
  13.                                 digits_2.remove((Object)h2);
  14.                                 int m1 = digits_2.get(0);
  15.                                 int m2 = digits_2.get(1);
  16.                                
  17.                                 int time = h1*1000 + h2*100 + m1*10 + m2;. 1point3acres.com/bbs
  18.                                 if(isValidTime(time)){
  19.                                         validTimes.add(time);
  20.                                 }
  21.                                
  22.                                 time = h1*1000 + h2*100 + m2*10 + m1;
  23.                                 if(isValidTime(time)){
  24.                                         validTimes.add(time);
  25.                                 }
  26.                         }
  27.                 }
  28.                
  29.                 -google 1point3acres
  30.                 int maxTime = findMaxTime(validTimes);
  31.                
  32.                 return time_IntToString(maxTime);. From 1point 3acres bbs
  33.         }
  34.        
  35.         private String time_IntToString(int time){
  36.                 String result = "";
  37.                 if(time >= 0){
  38.                         result += time/1000;
  39.                         result += time%1000/100;-google 1point3acres
  40.                         result += ":";. visit 1point3acres.com for more.
  41.                         result += time%100/10;
  42.                         result += time%10;
  43.                 }else{. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  44.                         result = "NOT POSSIBLE";
  45.                 }
  46.                
  47.                 return result;
  48.         }
  49.        
  50.         private int findMaxTime(List<Integer> times){
  51.                 int max = -1;
  52.                
  53.                 for(int time: times){
  54.                         if(time > max){
  55.                                 max = time;
  56.                         }.鐣欏璁哄潧-涓浜-涓夊垎鍦
  57.                 }
  58.                
  59.                 return max;
  60.         }
  61.        
  62.         private boolean isValidTime(int time){
  63.                 if(isValidHour(time/100) && isValidMinute(time%100)){. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  64.                         return true;
  65.                 }else{
  66.                         return false;.鐣欏璁哄潧-涓浜-涓夊垎鍦
  67.                 }
  68.         }. 1point 3acres 璁哄潧
  69.         . 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  70.         private boolean isValidHour(int hour){
  71.                 if(hour >= 0 && hour <= 23){. 鍥磋鎴戜滑@1point 3 acres
  72.                         return true;. visit 1point3acres.com for more.
  73.                 }else{
  74.                         return false;
  75.                 }. From 1point 3acres bbs
  76.         }.鏈枃鍘熷垱鑷1point3acres璁哄潧
  77.         鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  78.         private boolean isValidMinute(int min){. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  79.                 if(min >= 0 && min <= 59){
  80.                         return true;. From 1point 3acres bbs
  81.                 }else{
  82.                         return false;
  83.                 }
  84.         }
  85. }
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-11-20 05:49

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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