求数组和为某一个固定值的下标

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
public class shuzu {
	public int[] twoSum(int[] nums, int target) {
        for(int i=0;i<nums.length-1;i++){
            for(int j=i+1;j<nums.length;j++){
                if(nums[i]+nums[j]==target){
                    return new int[]{i,j};
                }
            }
        }
        return null;
    }
public static void main(String []args){
    int []nums={2,7,11,15};
    int target=9;
    int []arr=new shuzu().twoSum(nums,target);
    System.out.println(Arrays.toString(arr));
}

}

  运行结果:【0,1】

原文地址:https://www.cnblogs.com/mianyang0902/p/10969818.html

时间: 2024-11-02 23:55:58

求数组和为某一个固定值的下标的相关文章

求数组的最大值和次大值

#include <stdio.h> #include <stdlib.h> /* 求数组的最大值和次大值. */ int main() { int n; while (printf("Please input n:\n"),fflush(stdin), scanf("%d", &n) != EOF){ if (n < 2){ printf("Please input a bigger number.\n")

【2016.4.27】二维数组分组:按照一个键值,按照多个键值

<?php $arr = array( array('id' => 1, 'name' => 'seu','brand'=>'临'), array('id' => 1, 'name' => 'seu','brand'=>'临'), array('id' => 3, 'name' => 'njupt','brand'=>'兵'), array('id' => 3, 'name' => 'njupt','brand'=>'斗'),

poj 2485 求最小生成树中 最大的一个权值

Sample Input 1 //T 3 //n0 990 692 //邻接矩阵990 0 179692 179 0Sample Output 692 prim 1 # include <iostream> 2 # include <cstdio> 3 # include <cstring> 4 # include <algorithm> 5 # include <cmath> 6 # define LL long long 7 using na

求一个数组当中最大(最小)值的两种计算方法

求一个数组当中最大(最小)值的两种计算方法 1.常用方法(以求最大值为例) 1 #include "stdafx.h" 2 #include <string> 3 using namespace std; 4 int _tmain(int argc, _TCHAR* argv[]) 5 { 6 int a[5] = { 1, 23, 2, 6, 7 }; 7 int array_length = sizeof(a) / sizeof(a[0]);//数组大小 8 int m

一个关于求数组内最大子数组的和的小程序以及一周总结

一个数组内有正数和负数,而且数组是循环的.求数组内最大子数组的和.要求数组是算法空间复杂度为O(1). 思路: 1.求出每个子数组的值,比较大小. 2.定义一个参数,为数组的长度. 3.构造另外的数组,使得是原数组的得到两个集合.比如a={1,2,3,4}.b={1,2,3,4,1,2,3,4}; 4.这样可以满足数组的循环,参数为原数组的长度. 代码如下: package zuida; import java.io.*; import java.util.Scanner; class qiu

求数组中第二大的值

/* 所有c语言代码,都是在LoadRunner中运行: */Action(){ int a[]={12,34,565,23,24,667,89,98};//定义一个int数组: int len;//记录数组元素个数: int max;//所求的最大值: int max_2;//第二大的值: int i;//循环变量:LoadRunnerg中,不能在for循环中定义变量: len = sizeof(a)/sizeof(int);//数组元素个数=数组所占字符数/数组元素类型所占字符数; max

C++_第七章函数的基本知识_求阶乘的子函数_ 函数参数类型为数组_ 求数组内所有元素和、部分元素和的方法_实现了先从键盘输入到一个数组中,再用for循环取读出数组中的元素 for循环也可以用break来结束循环的

/* 第七章函数的基本知识 */ /*01)c++对于返回值有一定的限制:可以是常量.变量.指针.结构对象或表达式,但不可以是数组02)c++返回数组的方法:将数组作为结构会对象组成部分来返回03)函数遇到return则结束该函数04)如果一个函数的两房额参数类型相同,则必须分别制定每个参数的类型,而不能像声明常规变量那样,将声明组合在一起05)*/ //本代码注意double类型的写法以及double和int类型数据的转换 1 #include <iostream> 2 3 void che

输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。要求时间复杂度为O(n)(解决)

输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和.要求时间复杂度为O(n). 输入描述: [重要]第一行为数组的长度N(N>=1) 接下来N行,每行一个数,代表数组的N个元素 输出描述: 最大和的结果 输入例子1: 8 1 -2 3 10 -4 7 2 -5 输出例子1: 18 思路:对输入的数组进行计算, import java.util.Scanner; public class Main { public static void main(String[]

写一个方法求数组中的最大值,最小值,总和以及平均值。

class Program { /// <summary> /// 求数组中的最大值,最小值,总和以及平均值. /// </summary> /// <param name="nums">输入一个数组</param> /// <returns>返回一个新的数组(max,min,sum,avg)</returns> public static int[] GetMaxMinSumAvg(int[] nums) { i