h******6 发帖数: 2697 | 1 俩题,第二个比较简单,就是写个string的split(String s, char delimiter)
第一个我之前没听说过 但是版上大牛可能听说过了 两个数组,里面的数字都是0 to n
-1 and no duplicate. 使用swapWithZero把第二个变成第一个一模一样的 这个
swapWithZero只能跟数值为0的来swap
搜了下 就是这个 http://cs.stackexchange.com/questions/13930/rearrange-an-array-using-swap-with-0 |
d*****o 发帖数: 310 | |
c******0 发帖数: 260 | 3 我怎么看那个链接里的方法好复杂啊?
LZ面试的时候用的什么方法? |
h******6 发帖数: 2697 | 4
就是假设我们现在在a1[i] 然后我遍历a2到a2[j]==a1[i]的话 我swap(a2, i, zero);
zero=j;swap(a2, i, j);其中zero负责记录值为0的位置的index
他让改进 然后我就先扫一遍a2用hashmap记录每个数值的index 这样后面就不用遍历来
找某个数值的index了
【在 c******0 的大作中提到】 : 我怎么看那个链接里的方法好复杂啊? : LZ面试的时候用的什么方法?
|
h******6 发帖数: 2697 | 5 swap(a2, i, zero); //a2[i] = 0
swap(a2, i, j); //a2[i]=a2[j]
zero=j;a2[zero]=0; //a2[j] = 0
对了 还问thread和process的区别 以及synchronize thread和sync process的方法上
什么区别 这个不太会 谁告诉我下?OS基本没学过 |
c******0 发帖数: 260 | |
i****w 发帖数: 60 | 7 楼主的方法每次交换元素到正确位置需要3个swap,我贡献个平均只要n次swap的方法:
https://gist.github.com/ivanlw/8858495 |
s******t 发帖数: 229 | |
f**********2 发帖数: 2401 | |
h******6 发帖数: 2697 | 10
没
【在 s******t 的大作中提到】 : 要求最小步骤吗?
|
h******6 发帖数: 2697 | |