package point;import java.util.ArrayList;/**题目:* 给定一个有序数组,要求返回和为某个值的下标值,如果有多个,那么返回乘积最小的两个* y: 1 2 3 4 5 6 8* [1,5] [2,4]* @Author Gavin* @date 2021年12月07日 21:54*/public class sum_2 {//解题思路,就是使用两个指针,一个向左一个向右移动//注意乘积最小的有点迷惑人,最外层的两个值的乘积就是最小的public static ArrayList<int[]> solution(int[] arrays,int nums){ArrayList<int[]> list=new ArrayList<>();int i=0,j=arrays.length-1;while (i<j){if(arrays[i]+arrays[j]<nums)++i;else if(arrays[i]+arrays[j]>nums)--j;else list.add(new int[]{i,j});}return list;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。