Java详细解答获得数组中每个元素的下壹个更大元素 java了解
大家好,本网站为大家提供优质的、全新的游戏攻略,援助大家更愉悦地、更顺手地玩游戏,走过路过不要错过奥。
1. 题目解析
给定两个数组`nums1`和`nums2`,均包含不重复的元素,并且`nums1`是`nums2`的子集。编写一个算法,得到`nums1`中每个数字在`nums2`中对应的下一个更大元素。
因为数组`nums1`是`nums2`的子集,所以先得到`nums2`中每个元素的下一个更大元素,构建一个`map`,然后遍历`nums1`,构建最终的返回数组。
起首,我们需要编写一个函数,通过栈得到一个数组中每个元素的下一个更大元素,构建一个`map`返回。
2. 实现算法
已经有了数组`nums2`中每个元素对应的下一个更大元素的`map`,我们只需遍历`nums1`中每个元素,从`map`中得到值,构建返回数组即可。
```java
public int[] nextGreaterElement(int[] nums1, int[] nums2) {
Map
Stack
for (int num : nums2) {
while (!() () < num) {
map.put(stack.pop(), num);
}
stack.push(num);
}
int[] result new int[nums1.length];
for (int i 0; i < nums1.length; i ) {
result[i] (nums1[i], -1);
}
return result;
}
```
3. 编写本地测试方法
为了验证算法的正确性,我们编写一个本地测试方法,并观察控制台输出结果是否符合预期。
```java
public static void main(String[] args) {
Solution solution new Solution();
int[] nums1 {4, 1, 2};
int[] nums2 {1, 3, 4, 2};
int[] result (nums1, nums2);
((result));
}
```
4. 运行本地测试方法
运行本地测试方法,观察控制台输出结果是否符合预期。若果输出结果与预期一致,则说明本地测试通过。
5. 平台提交算法
经过本地测试的验证,我们可以将算法提交到平台进行测试,以确保算法的正确性和效率。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将即刻删除。
大家注意,记起持续关注本游戏攻略网站,您的支持是我们最大的动力奥,我们会努力提供全网新的游戏攻略教程,加油。
本创作内容,未授权勿转载,必究权责。
免责说明:本文代表的是网站编辑的观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经确认,因此对本文以及其中全部或者部份内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。