合并两个有序的数组
这道题我认为最简单的办法就是使用库函数,但是这个方法肯定不是官方的解法,先给大家看代码。
import java.util.*;
public class Solution {
public void merge(int A[], int m, int B[], int n) {
//拷贝数组 将B数组拷贝在A数组后面
//(源数组,源数组起始位置,目标数组,目标数组起始位置,复制数据元素的数量)
System.arraycopy(B,0,A,m,B.length);
//对A数组进行排序
Arrays.sort(A);
//打印数组
System.out.println(Arrays.toString(A));
}
}
对于Java lang包中 arraycopy方法解释:
二分查找
这是一道数据结构经典题目,就是基础的二分查找。
上代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param target int整型
* @return int整型
*/
public int search (int[] nums, int target) {
// write code here
int left = 0;
int right = nums.length-1;
while(left<=right){
int mid = (right+left)/2;
if(nums[mid]==target){
return mid;
}else if(nums[mid]<target){
left = mid+1;
}else{
right = mid-1;
}
}
return -1;
}
}
两数之和
这道题我记忆犹新,这是我在力扣刷的第一道题,两数之和,数组中两个元素的和等于目标值,返回一个新数组,新数组元素是两数的下标。
import java.util.*;
public class Solution {
/**
*
* @param numbers int整型一维数组
* @param target int整型
* @return int整型一维数组
*/
public int[] twoSum (int[] numbers, int target) {
// write code here
int[] arr = new int[2];
for(int i =0;i<numbers.length;i++){
if(numbers[i]>target){
continue;
}
for(int j =i+1;j<numbers.length;j++){
if (numbers[i]+numbers[j] == target){
arr[0] = i+1;
arr[1] = j+1;
return arr;
}
}
}
return arr;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119515.html