Leetcode (力扣)做题记录 hot100(34,215,912,121)

力扣第34题:在排序数组中查找第一个数和最后一个数

34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)

java 复制代码
class Solution {
    public int[] searchRange(int[] nums, int target) {
        int left = 0;
        int right = nums.length - 1;
        int[] arr = new int[2];
        arr[0] = -1;
        arr[1] = -1;
        while(left <= right){
            int mid= (left + right) /2;
            if(nums[mid] == target){
                arr[0] = mid;
                arr[1] = mid;
                int temp = mid;
                while(temp > 0 && nums[temp - 1] == target){
                    temp --;
                }
                arr[0] = temp;
                temp = mid;
                while(temp<nums.length -1 && nums[temp +1] == target){
                    temp ++;
                }
                arr[1] = temp;
                    return arr;
            }
            else if (nums[mid] < target){
                left = mid +1;
            }
            else{
                right = mid -1;
            }
        }
        return arr;
    }
}
力扣第215题:数组中的第K个最大元素

215. 数组中的第K个最大元素 - 力扣(LeetCode)

java 复制代码
class Solution {
    public int findKthLargest(int[] nums, int k) {
        int n = nums.length;
       return quikSort(nums,0,n-1,n-k);
    }
    private int quikSort(int[] nums,int l,int r ,int k){
        if(l == r) return nums[k];
        int x = nums[l];
        int i =l -1;
        int j = r +1;
        //分区
        while(i <j){
            //bix小
            do i++;while(nums[i] < x);
            do j--;while(nums[j] > x);
            if(i < j){
                int temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
            }
           
        }
         if(k <= j){
                return quikSort(nums,l,j,k);
            }
            else{
                return quikSort(nums,j+1,r,k);
            }
    }
}
力扣第912题:排序数组

912. 排序数组 - 力扣(LeetCode)

java 复制代码
class Solution {
    public int[] sortArray(int[] nums) {
      quikSort(nums,0,nums.length - 1);
      return nums;
    }
    private void quikSort(int[] nums,int l ,int r){
        if(l >= r){
            return;
        }
        int x= nums[l];
        int i = l-1;
        int j = r +1;
        while(i<j){
            do i++;while(x > nums[i]);
            do j--;while(x < nums[j]);
            if(i< j){
                int temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
            }
        } 
        quikSort(nums,l,j);
        quikSort(nums,j+1,r);

    }
}
复制代码
力扣第121题:买卖股票的最佳时机

121. 买卖股票的最佳时机 - 力扣(LeetCode)

java 复制代码
class Solution {
    public int maxProfit(int[] prices) {
        int min = prices[0];
        int max = 0;
        for(int i = 1;i < prices.length ;i++){
            if(min > prices[i]){
                min = prices[i];
            }
            else{
                max =Math.max(max, prices[i] - min);
            }
        }
        return max;
    }
}
复制代码

本文相关图片资源来自于网络中,如有侵权请联系删除!

相关推荐
1104.北光c°3 分钟前
滑动窗口HotKey探测机制:让你的缓存TTL更智能
java·开发语言·笔记·程序人生·算法·滑动窗口·hotkey
仰泳的熊猫4 小时前
题目2570:蓝桥杯2020年第十一届省赛真题-成绩分析
数据结构·c++·算法·蓝桥杯
似水明俊德7 小时前
02-C#.Net-反射-面试题
开发语言·面试·职场和发展·c#·.net
无极低码7 小时前
ecGlypher新手安装分步指南(标准化流程)
人工智能·算法·自然语言处理·大模型·rag
软件算法开发8 小时前
基于海象优化算法的LSTM网络模型(WOA-LSTM)的一维时间序列预测matlab仿真
算法·matlab·lstm·一维时间序列预测·woa-lstm·海象优化
superior tigre8 小时前
22 括号生成
算法·深度优先
腾阳9 小时前
99%的人忽视了这一点:活着本身就是人生的意义,别让抑郁和内耗成为你的枷锁!
经验分享·程序人生·职场和发展·跳槽·学习方法·媒体
不吃西红柿的859 小时前
[职场] 内容运营求职简历范文 #笔记#职场发展
笔记·职场和发展·内容运营
liyang_8309 小时前
邦芒秘诀:职场高手都具备的三个特征
职场和发展