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

打卡刷题,不想再过Diwali

🔗
tony.chenjy 2018-5-3 17:13:40 | 只看该作者
全局:
请问楼主,阿三那边待遇如何
回复

使用道具 举报

🔗
 楼主| hankok 2018-5-4 00:55:17 | 只看该作者
全局:
本帖最后由 hankok 于 2018-5-4 00:56 编辑
tony.chenjy 发表于 2018-5-3 17:13
请问楼主,阿三那边待遇如何

嗯 跳槽之所以有潜力翻倍~ 因为你懂的~~
回复

使用道具 举报

🔗
tony.chenjy 2018-5-4 08:27:30 | 只看该作者
全局:
hankok 发表于 2018-5-4 00:55
嗯 跳槽之所以有潜力翻倍~ 因为你懂的~~

可能我对阿三的印象还停留昏天暗地那种落后艰苦的沙俄时代,不过还是祝福楼主心想事成!
回复

使用道具 举报

🔗
 楼主| hankok 2018-5-4 10:03:04 | 只看该作者
全局:
tony.chenjy 发表于 2018-5-4 08:27
可能我对阿三的印象还停留昏天暗地那种落后艰苦的沙俄时代,不过还是祝福楼主心想事成!

没错 我觉得硅谷已经是昏天暗地的班加罗尔了
回复

使用道具 举报

🔗
 楼主| hankok 2018-5-7 13:51:41 | 只看该作者
全局:
本帖最后由 hankok 于 2018-5-7 13:52 编辑
爱丽丝和鲍勃 发表于 2018-5-3 16:21
印度的一个节日咯。相当于新年好像。

也是硅谷各大小公司最热闹的节日,没听说过公司年会,但是必须知道diwali
回复

使用道具 举报

🔗
 楼主| hankok 2018-5-10 07:12:17 | 只看该作者
全局:
683. K Empty Slots
1. 容易被数组index弄迷糊
2.

   
  1. public int kEmptySlots(int[] flowers, int k) {
  2.     int days[] = new int[flowers.length+1];

  3.     for(int i=0; i<flowers.length; i++){
  4.         days[flowers[i]] = i+1; // [3,9,2,8,1,6,10,5,4,7] -> [0, 5, 3, 1, 9, 8, 6, 10, 4, 2, 7]
  5.     }

  6.     int res = Integer.MAX_VALUE;
  7.     // 用两个指针,边界比较清楚
  8.     for(int p1 = 1, p2 = k+2; p2<days.length; p1++, p2++){
  9.         // check from between p1 and p2, to see if any violations, if so, break
  10.         int p=p1+1;
  11.         for(; p<p2; p++){
  12.             if(days[p] <= days[p1] || days[p] <= days[p2])
  13.                 break;
  14.         }
  15.         if(p==p2) // 如果k=0, 那么p==p2, 如果k>0, 那么p1,p2之间有一个数,并且通过上面的check,那么p==p2。这个条件其实包含了这两种情况。
  16.             res = Math.min(res, Math.max(days[p1], days[p2]));   // 可能会有多个满足以上check的,比如[1,9,8] (第8天,这里day=max(1, 8)) [6,10,4] (第6天) 都满足[0, 5, 3, 1, 9, 8, 6, 10, 4, 2, 7] k=1的case, 所以要取最小值
  17.     }
  18.     return res==Integer.MAX_VALUE?-1:res;
  19. }
复制代码
回复

使用道具 举报

🔗
SunLove1989 2018-5-10 09:57:39 | 只看该作者
全局:
楼主加油加油~~~
回复

使用道具 举报

🔗
 楼主| hankok 2018-5-11 05:07:43 | 只看该作者
全局:
681. Next Closest Time
思路是把时间例如23:59转换成23*60+58=1438min, 然后依次(1438+1)%1440, (1439+1)%1440, (1440+1)%1440, ... 循环的同时再把这些分钟数转回时间,判断每个时间的每个数字都包含在String time中,如果是则立即返回。
这里注意,如果从23:59(1439)开始循环,不应该在1440就结束,而是i%1440,然后循环会重新从0开始,deadloop,但是保证会返回。
Test Case:
23:59 边界
00:00 边界
0:00 合法
24:00不合法

  1. public String nextClosestTime(String time) {               
  2.     // convert time to # of minutes
  3.     String hour = time.split(":")[0];
  4.     String min = time.split(":")[1];
  5.     int m = Integer.valueOf(hour)*60 + Integer.valueOf(min);

  6.     // Get next time in the next minute, until found
  7.     for(int i=m+1; ; i++){
  8.         i=i%1440;
  9.         String h1 = String.valueOf(i/60/10);
  10.         String h2 = String.valueOf((i/60)%10);
  11.         String m1 = String.valueOf((i%60)/10);
  12.         String m2 = String.valueOf((i%60)%10);
  13.         //System.out.println(h1+h2+m1+m2);

  14.         if(time.lastIndexOf(h1)!=-1 && time.lastIndexOf(h2)!=-1 && time.lastIndexOf(m1)!=-1 && time.lastIndexOf(m2)!=-1){
  15.             return h1+h2+":"+m1+m2;
  16.         }
  17.         else
  18.             continue;
  19.     }
  20. }
复制代码

补充内容 (2018-5-11 05:09):
else continue可以去掉
回复

使用道具 举报

🔗
 楼主| hankok 2018-5-11 08:41:29 | 只看该作者
全局:
340. Longest Substring with At Most K Distinct Characters
这题要注意两个指针,charmap自增不要搞错或者丢掉,否则分分钟越界、死循环。
int k=5;
System.out.println(k--==5); // true , k--无论作为返回值还是放在表达式里,都是先返回当前值。

还有ASCII字符个数是256(128 basic + extended)
  1. class Solution {
  2.     public int lengthOfLongestSubstringKDistinct(String s, int k) {
  3.         int charmap[] = new int[256];

  4.         int distinct = 0;
  5.         int len = 0, maxlen = 0;
  6.         int i = 0, j = 0;

  7.         while (j < s.length()) {
  8.             if (charmap[s.charAt(j)]++ == 0)
  9.                 distinct++;

  10.             while (distinct > k) {
  11.                 if (charmap[s.charAt(i++)]-- == 1)
  12.                     distinct--;
  13.             }
  14.             len = j++ - i + 1;
  15.             maxlen = Math.max(maxlen, len);
  16.         }
  17.         return maxlen;
  18.     }
  19. }
复制代码
回复

使用道具 举报

🔗
kobesummer 2018-5-11 09:03:52 | 只看该作者
全局:
我在Diwali,但是真是没办法 哪里都是Diwali...
回复

使用道具 举报

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

本版积分规则

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