724. 寻找数组的中心下标
题目链接:724. 寻找数组的中心下标 - 力扣(LeetCode)
题目难度:简单
代码:
class Solution {
public int pivotIndex(int[] nums) {
int sum=0;
for(int i=0;i<nums.length;i++){
sum+=nums[i];
}
int leftSum=0,rightSum=0;
for(int i=0;i<nums.length;i++){
leftSum+=nums[i];
rightSum=sum-leftSum+nums[i];
if(leftSum==rightSum)
return i;
}
return -1;
}
}
34. 在排序数组中查找元素的第一个和最后一个位置
题目链接:34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)
题目难度:中等
代码:
class Solution {
public int binarySearch(int[] nums,int target){
int left=0;
int right=nums.length-1;
while(left<=right){
int mid=left+(right-left)/2;
if(nums[mid]==target)
return mid;
else if(nums[mid]<target)
left=mid+1;
else
right=mid-1;
}
return -1;
}
public int[] searchRange(int[] nums, int target) {
int index=binarySearch(nums,target);
if(index==-1) return new int[]{-1,-1};
int left=index,right=index;
while(left-1>=0&&nums[left-1]==nums[index])
left--;
while(right+1<nums.length&&nums[right+1]==nums[index])
right++;
return new int[]{left,right};
}
}
922. 按奇偶排序数组 II
题目链接:922. 按奇偶排序数组 II - 力扣(LeetCode)
题目难度:简单
代码:
class Solution {
public int[] sortArrayByParityII(int[] nums) {
int[] result=new int[nums.length];
int even=0,odd=1;
for(int i=0;i<nums.length;i++){
if(nums[i]%2==0){
result[even]=nums[i];
even+=2;
}else{
result[odd]=nums[i];
odd+=2;
}
}
return result;
}
}
35. 搜索插入位置
题目链接:35. 搜索插入位置 - 力扣(LeetCode)
题目难度:简单
代码:
class Solution {
public int searchInsert(int[] nums, int target) {
int n=nums.length;
int low=0;
int high=n-1;
while(low<=high){
int mid=low+(high-low)/2;
if(nums[mid]>target){
high=mid-1;
}else if(nums[mid]<target){
low=mid+1;
}else{
return mid;
}
}
return high+1;
}
}