20160526

2016-05-31  本文已影响12人  嘘嘘乐

明天不用带饭啦

临睡前无事关注了下大前端群然后自作自受陷入了javascript弱类型的坑。ref👈
解题思路比较简单两个指针一左一右夹击,左边遇到非*停下,右边遇到*停下,交换(从伪代码到代码还有101次修改是我)。

var sort = function(array) {

  for(let i = 0, j = array.length-1; i<j; ) {
    while (i < j && array[i] === '*') {
      i++;
    }
    while (i < j && array[j] !== '*') {
      j--;
    }
    if (i < j) {
      [array[i++], array[j--]] = [array[j], array[i]];
    }
  }
  return array;
};

就是遇到了交换的坑。CC++写函数是可以选择传值还是传址。一个交换函数

void swap(int *p1, int *p2)
{
    int temp = 0; 
    temp = *p1;
    *p1 = *p2;
    *p2 = temp;
}

到javascript里就呵呵了。哪有传递引用?搜了一遍没找到太晚了先记下,投机取巧用了ES6解构赋值[a, b] = [b, a];所以最后连一个简单的交换函数都实现不了我要去睡觉了。。。


早上又提了好些代码,看起来有些以为写得短就是写得好呢。不懂算法瞎搞
当然我之前也会投机取巧缩短行数搞得别人看不懂代码。不过写业务代码能短些倒是好事,反正我们也不像王小波写的按代码行数算钱。
那么至此就推荐一个算法过程的东西吧👉AlgorithmVisualizer

上一篇下一篇

猜你喜欢

热点阅读