【通知】7月22,工业界资深数据科学家教你破解各大公司面试!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 692|回复: 2
收起左侧

LiveRamp 日常跪经

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

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

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

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

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

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

. more info on 1point3acres.com
第二天早上就挂了………… 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
附上我的代码, 路过大神看看有没有什么问题,虽然我觉得就是存粹的简历挂了

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 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
用html的格式还爆了,试试discuz自带的吧。。。
  1. import java.util.*;

  2. public class rearrangeInterval {
  3.         public int solution(int[] arr){
  4.                 // corner cases
  5.                 if(arr.length < 2){
  6.                         return 0;
  7.                 }. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  8.                
  9.                 // left and right index to record the interval
  10.                 int indexL = arr.length;
  11.                 int indexR = -1;
  12.                
  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;
  31.                                 break;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  32.                         }
  33.                 }
  34.                
  35.                 // find min and max in 'out of order' interval
  36.                 int min = Integer.MAX_VALUE;. 1point3acres.com/bbs
  37.                 int max = Integer.MIN_VALUE;
  38.                 for(int i = indexL; i <= indexR; i++){
  39.                         if(arr[i] < min){
  40.                                 min = arr[i];
    . 鍥磋鎴戜滑@1point 3 acres
  41.                         }. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  42.                         
  43.                         if(arr[i] > max){
  44.                                 max = arr[i];. 1point 3acres 璁哄潧
  45.                         }. From 1point 3acres bbs
  46.                 }
  47.                
  48.                 // re-check left 'in-order' part. From 1point 3acres bbs
  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;
  60.                                 break; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  61.                         }
  62.                 }.1point3acres缃
  63.                 .1point3acres缃
  64.                 return indexR - indexL + 1;
  65.         }
  66. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| goolloo 发表于 2016-11-19 08:37:21 | 显示全部楼层
关注一亩三分地微博:
Warald
  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<>();
  7.                 . visit 1point3acres.com for more.
  8.                 for(int h1: digits_4){
  9.                         List<Integer> digits_3 = new ArrayList<>(digits_4);
  10.                         digits_3.remove((Object)h1);
  11.                         for(int h2: digits_3){.鏈枃鍘熷垱鑷1point3acres璁哄潧
  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;
  18.                                 if(isValidTime(time)){
  19.                                         validTimes.add(time);
  20.                                 }.鏈枃鍘熷垱鑷1point3acres璁哄潧
  21.                                
  22.                                 time = h1*1000 + h2*100 + m2*10 + m1;
  23.                                 if(isValidTime(time)){
  24.                                         validTimes.add(time);
  25.                                 }. 1point3acres.com/bbs
  26.                         }
  27.                 }.鏈枃鍘熷垱鑷1point3acres璁哄潧
  28.                 . visit 1point3acres.com for more.
  29.                 . more info on 1point3acres.com
  30.                 int maxTime = findMaxTime(validTimes);
  31.                 . 1point 3acres 璁哄潧
  32.                 return time_IntToString(maxTime); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  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;
  40.                         result += ":";
  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.                 . From 1point 3acres bbs
  59.                 return max;
  60.         } 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  61.        
  62.         private boolean isValidTime(int time){
  63.                 if(isValidHour(time/100) && isValidMinute(time%100)){
  64.                         return true;
  65.                 }else{. From 1point 3acres bbs
  66.                         return false;
  67.                 }
  68.         }
  69.        
  70.         private boolean isValidHour(int hour){
  71.                 if(hour >= 0 && hour <= 23){
  72.                         return true;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  73.                 }else{. 1point3acres.com/bbs
  74.                         return false;
  75.                 }
  76.         }. 鍥磋鎴戜滑@1point 3 acres
  77.        
  78.         private boolean isValidMinute(int min){
  79.                 if(min >= 0 && min <= 59){.鏈枃鍘熷垱鑷1point3acres璁哄潧
  80.                         return true;
  81.                 }else{
  82.                         return false;.鏈枃鍘熷垱鑷1point3acres璁哄潧
  83.                 }
  84.         }
  85. }
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-7-21 23:14

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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