LeetCode(34)在排序数组中查找元素的第一个和最后一个位置
class Solution {
public int[] searchRange(int[] nums, int target) {
int[] arrayFlag={-1,-1};
for (int nums2 = 0; nums2 < nums.length; nums2++) {
if(nums[nums2]==target){
arrayFlag[0]=nums2;//第一个值找出来立刻退出
break;
}
}
for (int num3 = arrayFlag[0]+1; num3 < nums.length; num3++) {
if(nums[num3]==target){
arrayFlag[1]=num3;//一直往最后一个值找,找不到进行判断
}
}
if(arrayFlag[1]==-1){
arrayFlag[1]=arrayFlag[0];//做一个判断,若为-1,将第一个值赋值给它
}
return arrayFlag;
}
}
leetCode(35)搜索插入位置
class Solution {
public int searchInsert(int[] nums, int target) {
int left=0;
int right=nums.length-1;
while (left<=right) {
int mid=(left+right)/2;
if(target>nums[mid]){
left=mid+1;
}else if(target<nums[mid]){
right=mid-1;
}else{
return mid;
}
}
return left;//通过二分查找,画图得到结果
}
}
leetCode(27)移除元素
class Solution {
public int removeElement(int[] nums, int val) {
int i=0;
for (int nums2 = 0; nums2 < nums.length; nums2++) {
if(nums[nums2]!=val){
nums[i]=nums[nums2];
++i;
}
}
return i;
}
}
leetCode(704)二分查找
class Solution {
public int search(int[] nums, int target) {
int left=0;
int right=nums.length-1;
while (left<=right) {
int mid=(left+right)/2;
if(target>nums[mid]){
left=mid+1;
}else if(target<nums[mid]){
right=mid-1;
}else{
return mid;
}
}
return -1;
}
}