一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 100|回复: 2
收起左侧

LiveRamp 日常跪经

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

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

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

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

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

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


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

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;        }}


. visit 1point3acres.com for more.
 楼主| goolloo 发表于 2016-11-19 08:36:50 | 显示全部楼层
用html的格式还爆了,试试discuz自带的吧。。。
  1. import java.util.*;
  2. . 1point3acres.com/bbs
  3. public class rearrangeInterval {
  4.         public int solution(int[] arr){
  5.                 // corner cases
  6.                 if(arr.length < 2){
  7.                         return 0;
  8.                 }
    . 1point 3acres 璁哄潧
  9.                
  10.                 // left and right index to record the interval
  11.                 int indexL = arr.length;
  12.                 int indexR = -1;
  13.                 .鏈枃鍘熷垱鑷1point3acres璁哄潧
  14.                 // find out of order part
  15.                 for(int i = 1; i < arr.length; i++){
  16.                         if(arr[i-1] > arr[i]){
  17.                                 // out of order
  18.                                 indexL = i-1;. From 1point 3acres bbs
  19.                                 break;
  20.                         }
  21.                 }
  22.                 . 鍥磋鎴戜滑@1point 3 acres
  23.                 // all in order.鐣欏璁哄潧-涓浜-涓夊垎鍦
  24.                 if(indexL == arr.length){
  25.                         return 0; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  26.                 }
  27.                 . more info on 1point3acres.com
  28.                 // find out of order right boundary
  29.                 for(int i = arr.length-1; i >= 0; i--){
  30.                         if(arr[i-1] > arr[i]){. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  31.                                 indexR = i;
  32.                                 break;
  33.                         }
  34.                 }
  35.                
  36.                 // find min and max in 'out of order' interval.1point3acres缃
  37.                 int min = Integer.MAX_VALUE;
  38.                 int max = Integer.MIN_VALUE;. from: 1point3acres.com/bbs
  39.                 for(int i = indexL; i <= indexR; i++){
  40.                         if(arr[i] < min){
  41.                                 min = arr[i];. more info on 1point3acres.com
  42.                         }
  43.                         
  44.                         if(arr[i] > max){
  45.                                 max = arr[i];
  46.                         }
  47.                 }
  48.                
  49.                 // re-check left 'in-order' part
  50.                 for(int i = 0; i < indexL; i++){
  51.                         if(arr[i] > min){
  52.                                 indexL = i;
  53.                                 break;
  54.                         }
  55.                 }
  56.                
  57.                 // re-check right 'in-order' part
  58.                 for(int i = arr.length-1; i > indexR; i--){
  59.                         if(arr[i] < max){
  60.                                 indexR = i;
  61.                                 break;
  62.                         }
  63.                 }
  64.                
  65.                 return indexR - indexL + 1;
  66.         }
  67. }
复制代码
回复 支持 反对

使用道具 举报

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

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-3 21:55

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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