算法例题
来源:互联网 发布:数据助理是做什么的 编辑:程序博客网 时间:2024/05/29 19:53
1.从给定的数组中找到两个元素的和为指定值的两个索引
例:Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1]. // 第一种最常见的就是遍历两次数组,取值相加。 public int[] findIndex(int[] nums, int target) { for (int i = 0; i < nums.length; ++i) { for (int j = i + 1; j < nums.length; ++j) { if (nums[i] + nums[j] == target) { return new int[]{i, j}; } } } return null; }
利用HashMap作为存储,键为目标值减去当前元素值,索引为值,比如i = 0时,此时首先要判断nums[0] = 2是否在map中,如果不存在,那么插入键值对key = 9 - 2 = 7, value = 0,之后当i = 1时,此时判断nums[1] = 7已存在于map中,那么取出该value = 0作为第一个返回值,当前i作为第二个返回值,具体代码如下所示。
public int[] findIndex(int[] nums,int target){ HashMap<Integer,Integer> map = new HashMap<>(); for(int i = 0 ;i < nums.length;i++){ if(map.containsKey(nums[i])){ return new int[]{map.get(key),i}; } map.put(target - nums[i],i); } return null;}
阅读全文
0 0
- 算法例题
- 回溯算法及例题
- 银行家算法例题
- 进程调度算法例题
- 贪心算法例题
- dfs算法经典例题
- 递归算法 例题
- java 经典算法 例题
- Kruskal算法例题
- Prim()算法例题
- 递归算法经典例题
- 字符串相关算法例题
- 算法例题(一)
- 算法课例题
- 贪心算法例题
- 位图算法(编程珠玑例题)
- Java经典算法例题分享
- Java经典算法例题分享
- SQLServer批量删表
- LinkedHashMap源码分析
- AndroidStudio opencv(一)
- 最牛最暴力的开源协议:WTFPL
- 微信支付或者支付宝支付的时候参数ASCII码排序
- 算法例题
- 文档注释
- world设置多级列表
- Servlet学习笔记
- PHP中使用cURL实现Get和Post请求的方法
- JVM:Java内存区域
- ros Anaconda2 catkin_make
- IntelliJ IDEA 学习笔记
- shell命令技巧小记