• Java找出不重复无序数组中和为n的两数的下标


     1 import java.util.HashMap;
     2 import java.util.Iterator;
     3 import java.util.Map;
     4 
     5 public class Demo5 {
     6 
     7     public static void main(String[] args) {
     8 
     9         int[] arr = new int[]{3, 4, 5, 9, 8};
    10         int num = 8;
    11         int[] ret = getIndex(arr, num);
    12         System.out.println("index of two number:" + ret[0]+" " + ret[1]);
    13 
    14     }
    15 
    16     //找到这两个数的下标,并以长度为2的数组形式返回
    17     public static int[] getIndex(int[] arr, int num){
    18         
    19         int[] ret = new int[2];   //长度为2的数组
    20         HashMap<Integer, Integer> hashMap = new HashMap<>();
    21         int index = 0;
    22         
    23         //将每个数字及其下标放入map中
    24         for (int i : arr) {
    25             hashMap.put(i, index++ );
    26         }
    27 
    28         //遍历 HashMap 并判断
    29         Iterator iterator = hashMap.entrySet().iterator();
    30         while (iterator.hasNext()){
    31             Map.Entry entry = (Map.Entry)iterator.next();
    32 
    33             int value = (int) entry.getKey();
    34             int subValue = num - value;
    35 
    36             if (hashMap.containsKey(subValue)){
    37                 //找到了
    38                 ret[0] = (int) entry.getValue();
    39                 ret[1] = hashMap.get(subValue);
    40                 break;
    41             }
    42         }
    43         return ret;
    44 
    45     }
    46 }
  • 相关阅读:
    设计模式(23)>解释器模式 小强斋
    设计模式(21)>享元模式 小强斋
    访问者模式与双分派 小强斋
    将BMP格式的灰度图像或24位真彩图像二值化
    如何使用自定义Title
    ACM. Digital Roots
    jpegEncode
    ACM.Ones
    剩余定理
    ACM.DNA Sorting
  • 原文地址:https://www.cnblogs.com/guan-zl/p/15017564.html
Copyright © 2020-2023  润新知