联玛客(W 笔试)
纸质算法题
1、
输入数据:1、3、2、4、8...
输出数据:3、1、4、2、8...
找出规律,写出一个程序求解,并附上时间复杂度和空间复杂度
我的答案:
规律一:奇偶位互换
假设输入数据长度为50
public static void main(String[] args) {Scanner input = new Scanner(System.in);int[] arr = new int[50];for (int i = 0; i < arr.length; i++) {arr[i] = input.nextInt();}for (int i = 0; i < arr.length;) {if (i == arr.length - 1) {break;}System.out.println(arr[i + 1]);System.out.println(arr[i]);i += 2;}}时间复杂度:O(n),空间复杂度:O(n)
交流:
B:假设我不要你输出这些数据,只要你改变内部数据,你该怎么优化;
A:...
B:你判断一下数组的长度
A:我知道了,判断数据的长度是奇数/偶数,然后倒序输出就可以了;(时间复杂度为O(1),空间复杂度为O(1))
B:是的
转载于:https://www.cnblogs.com/syjp/p/10486167.html
总结
- 上一篇: 【计算机网络】Session机制
- 下一篇: 上厕所时间超长也能被开除?法院:超出正常