摘要:
给定一个长度为N的整型数组arr, 其中只有N个互不相等的自然数 1~N 请实现 arr的排序, 但是不要把下标0~N-1位置上的数通过直接赋值的方法替换成 1~N 分析: arr在调整之后应该是下表从 0 到 N-1的位置上以此放着1~N 即 arr[index] = index+1 从左到右遍历 阅读全文
摘要:
一个数组中 每个元素左边比他小的和 然后都加起来 这个题目非常牛逼,可以用归并加速法,在归并的过程中做文章!!! 代码展示: 结果: 阅读全文
摘要:
给定一个无序数组arr,其中元素可正、可负、可0,给定一个整数k,求arr所有的子数组中累加和小于或等于k的最长子数组长度。 例如: arr=[3,-2,-4,0,6] , k=-2, 相加和小于或者等于-2的最长子数组为{3,-2,-4,0}, 所以结果返回4 解题思想(我称之为预处理思想): 预 阅读全文
摘要:
可正 负 0 的数组,给定一个正整数k 求arr 所有子数组中累加和为k的最长子数组问题 s(i) 代表前i个元素的和,那么子数组arr[i.....j]的累加和为 s(i)-s(j-1) 这是题目的核心!!! 这样原问题解法,只遍历一遍。 设置map key表示此处的sum值 value表示出现的 阅读全文
摘要:
例如 arr=[1,2,1,1,1] k=3 累加和为 3的最长子数组为[1,1,1] 所以结果为3 思路方法: 两个指针 left 和right 初始值都是0 都在左边 sum 代表 子数组 left.....right的和 len 一直记录累加和为k的所有子数组中最大子数组的长度 根据 sum与 阅读全文
摘要:
这个问题跟上一个 大同小异,如何不重复打印呢? 首先保证选定三元数组中第一个值不重复,剩下的就跟前一个题目一样了。 阅读全文
摘要:
给定一个排序数组arr 和整数 k, 在里面找到所相加为k的二元数组。 思路: 充分利用有序呀 二元数组嘛 可以两个指针 一个 left 一个right 不断向中间压缩 看看和与k的关系 然后移动相应的指针 阅读全文