当前位置: 首页 > news >正文

Day39 | 724. 寻找数组的中心下标、34. 在排序数组中查找元素的第一个和最后一个位置、922. 按奇偶排序数组 II、35. 搜索插入位置

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;
    }
}

相关文章:

  • 如何用腾讯云建站做好一个多语言的建筑工程网站?海外用户访问量提升3倍!分享我的经验
  • 加新题了,MySQL 8.0 OCP 认证考试 题库更新
  • 通信系统的性能指标
  • MySql INDEX
  • Python:进程池,同步和异步,进程池通信示例
  • 集星獭 | 平滑适配多系统打通商管业财数据脉络
  • Java动态生成Word终极指南:poi-tl与Aspose.Words性能对比及选型建议
  • 如何避免测试数据准备不充分或不可复用
  • 第二章 EXI协议原理与实现--9.7 cbExiGen库bug及改进
  • Android adb自身调试log开关
  • HashMap的位操作是什么?HashSet 的 contains 方法复杂度是多少?红黑树简单讲一下?
  • 基于Ebay拍卖网站成交价格的影响因素分析
  • 【TI MSPM0】PWM学习
  • Android 12.0 WiFi连接默认设置静态IP地址功能实现
  • ALTER TABLE SHRINK SPACE及MOVE的区别与适用场景
  • 如何突破MacBook苹果电脑Cursor限制:免费版的解决方法
  • 【Linux线程】——线程同步线程互斥
  • SpringMVC 请求与响应处理详解
  • Vue-admin-template安装教程
  • 数据结构入门【算法复杂度】
  • 润州网站建设/培训中心
  • 云相册网站怎么做的/网店代运营骗局
  • 东莞市住房建设局网站/外链生成器
  • 网站建设的编程技术/站内关键词排名优化软件
  • 电子商务 网站模板/下载百度地图2022最新版官方
  • wordpress 自动升级/seo现在还有前景吗