日志01/19/18

2018-01-20  本文已影响0人  Muama

今天以前的professor 发了个intren position给我,收到了hr email,虽然岗位看着一般,但似乎与无人车有点关系,先试试手吧,准备一波简历,要面试了

挡板题:
我都用exclude做法

array dedup I
只保留一个

int i = 1;
   for (int j = 1; j < array.length; j++){
     if (array[j] != array[i - 1]){
       array[i++] = array[j];
     }
   }

array dedup II
保留两个

int i = 2;
    for (int j = 2; j < array.length; j++) {
      if (array[j] != array[i - 2]) {
        array[i++] = array[j];
      }
    }

array dedup III
重复的全都不保留, tricky的地方是需要两个fast一个是cur,另一个指针来记录重复开始

int i = 0, j = 0;
    while (j < array.length) {
      int k = j;
      while (j < array.length && array[j] == array[k]) {
        j++;
      }
      if (k + 1 == j) {
          array[i++] = array[k];
      }
    }

Move 0s To The End I
不需要保留原array的relative oreder
两指针相向而行就可以

Move 0s To The End II
需要保留原array的relative oreder
那么我们只能两指针同向而行

上一篇下一篇

猜你喜欢

热点阅读