1.数组的创建和初始化
int[] arr = new int[]{0,1,2,3};
int[] num = {2,3,4,5};
2.查找元素
public static int findElement(int[] arr,int size,int key){
for(int i = 0;i < size;i++){
if(arr[i] == key)
return i;
}
return -1;
}
LeetCode35 查找插入位置
使用二分查找
class Solution {
public int searchInsert(int[] nums, int target) {
int n = nums.length;
int ans = n;
int left = 0,right = n - 1;
while(left <= right){
int mid = ((right - left) >> 1) + left;
if(target <= nums[mid]){
ans = mid;
right = mid - 1;
}else{
left = mid + 1;
}
}
return ans;
}
}
3.插入元素
public static int addElement(int[] arr, int size,int element){
if(size >= arr.length)
return -1;
int index = size;
for(int i = 0;i < size;i++){
if(element < arr[i]){
index = i;
break;
}
}
for(int j = size;j > index;j--)
arr[j] = arr[j - 1];
arr[index] = element;
return index;
}
4.删除元素
public int removeElement(int[] arr,int size,int key){
int index = -1;
for(int i = 0;i < size;i++)
if(arr[i] == key){
index = i;
break;
}
if(index != -1){
for(int i = index + 1;i < size;i++)
arr[i - 1] = arr[i];
size--;
}
return size;
}
5.单调数组
LeetCode896 单调数组
如果 i <= j且nums[i] <= nums[j] 或者 i >= j且nums[i] >= nums[j]那这个数组就是单调的。
class Solution {
public boolean isMonotonic(int[] nums) {
return isSorted(nums,true) || isSorted(nums,false);
}
boolean isSorted(int[] nums,boolean bool){
int n = nums.length;
for(int i = 0;i < n - 1;++i){
if(bool == true){
if(nums[i] > nums[i + 1])
return false;
}else{
if(nums[i] < nums[i + 1])
return false;
}
}
return true;
}
}
6.合并数组
LeetCode88 合并两个有序数组
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int i = m + n - 1;
int len1 = m - 1,len2 = n - 1;
while(len1 >= 0 && len2 >= 0){
if(nums1[len1] <= nums2[len2])
nums1[i--] = nums2[len2--];
else if(nums1[len1] > nums2[len2])
nums1[i--] = nums1[len1--];
}
while(len1 != -1)
nums1[i--] = nums1[len1--];
while(len2 != -1)
nums1[i--] = nums2[len2--];
}
}