摘要:
题目: 给定一个长度不小于2的数组arr,实现一个函数调整arr,要么使所有的偶数下标都是偶数,要么使所有的奇数下标都是奇数。 要求:时间复杂度为O(N),额外空间复杂度为O(1)。 程序: public static void modify(int[] arr) { if (arr == null || arr.length < 2) { return; } int even ... 阅读全文
摘要:
题目: 给定一个长度为N的整型数组arr,其中有N个互不相等的自然数1~N,请实现arr的排序,但是不要把下标0~N-1位置上的数值通过直接赋值的方式替换成1~N。 要求:时间复杂度为O(N),额外空间复杂度为O(1)。 思路: 1.从左向右遍历arr,假设当前遍历到i位置。 2.if arr[i]==i+1,不需要调整,继续遍历。 3.if arr[i]!=i+1,进行调整。 根据调整功能的方法... 阅读全文
摘要:
一、未排序正数数组中累加和为给定值的最长子数组长度 题目: 给定一个数组arr,该数组无序,但每个数都是正数,再给定一个正数K。求arr的所有子数组中所有元素相加和为K的最长子数组长度。 例如: arr=[1,2,1,1,1],K=3, 累加和为3的最长子数组为[1,1,1],return 3。 程序:public static int getMaxLength(int[] arr, int k)... 阅读全文