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

[复制链接]
发表于 2025-9-10 03:31:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
力扣第34题:在排序数组中查找第一个数和末了一个数

34. 在排序数组中查找元素的第一个和末了一个位置 - 力扣(LeetCode)
  1. class Solution {
  2.     public int[] searchRange(int[] nums, int target) {
  3.         int left = 0;
  4.         int right = nums.length - 1;
  5.         int[] arr = new int[2];
  6.         arr[0] = -1;
  7.         arr[1] = -1;
  8.         while(left <= right){
  9.             int mid= (left + right) /2;
  10.             if(nums[mid] == target){
  11.                 arr[0] = mid;
  12.                 arr[1] = mid;
  13.                 int temp = mid;
  14.                 while(temp > 0 && nums[temp - 1] == target){
  15.                     temp --;
  16.                 }
  17.                 arr[0] = temp;
  18.                 temp = mid;
  19.                 while(temp<nums.length -1 && nums[temp +1] == target){
  20.                     temp ++;
  21.                 }
  22.                 arr[1] = temp;
  23.                     return arr;
  24.             }
  25.             else if (nums[mid] < target){
  26.                 left = mid +1;
  27.             }
  28.             else{
  29.                 right = mid -1;
  30.             }
  31.         }
  32.         return arr;
  33.     }
  34. }
复制代码
力扣第215题:数组中的第K个最大元素

215. 数组中的第K个最大元素 - 力扣(LeetCode)
  1. class Solution {
  2.     public int findKthLargest(int[] nums, int k) {
  3.         int n = nums.length;
  4.        return quikSort(nums,0,n-1,n-k);
  5.     }
  6.     private int quikSort(int[] nums,int l,int r ,int k){
  7.         if(l == r) return nums[k];
  8.         int x = nums[l];
  9.         int i =l -1;
  10.         int j = r +1;
  11.         //分区
  12.         while(i <j){
  13.             //bix小
  14.             do i++;while(nums[i] < x);
  15.             do j--;while(nums[j] > x);
  16.             if(i < j){
  17.                 int temp = nums[i];
  18.                 nums[i] = nums[j];
  19.                 nums[j] = temp;
  20.             }
  21.            
  22.         }
  23.          if(k <= j){
  24.                 return quikSort(nums,l,j,k);
  25.             }
  26.             else{
  27.                 return quikSort(nums,j+1,r,k);
  28.             }
  29.     }
  30. }
复制代码
力扣第912题:排序数组

912. 排序数组 - 力扣(LeetCode)
  1. class Solution {
  2.     public int[] sortArray(int[] nums) {
  3.       quikSort(nums,0,nums.length - 1);
  4.       return nums;
  5.     }
  6.     private void quikSort(int[] nums,int l ,int r){
  7.         if(l >= r){
  8.             return;
  9.         }
  10.         int x= nums[l];
  11.         int i = l-1;
  12.         int j = r +1;
  13.         while(i<j){
  14.             do i++;while(x > nums[i]);
  15.             do j--;while(x < nums[j]);
  16.             if(i< j){
  17.                 int temp = nums[i];
  18.                 nums[i] = nums[j];
  19.                 nums[j] = temp;
  20.             }
  21.         }
  22.         quikSort(nums,l,j);
  23.         quikSort(nums,j+1,r);
  24.     }
  25. }
复制代码
  1. [/code] [size=2]力扣第121题:买卖股票的最佳机遇[/size]
  2. 121. 买卖股票的最佳机遇 - 力扣(LeetCode)
  3. [code]class Solution {
  4.     public int maxProfit(int[] prices) {
  5.         int min = prices[0];
  6.         int max = 0;
  7.         for(int i = 1;i < prices.length ;i++){
  8.             if(min > prices[i]){
  9.                 min = prices[i];
  10.             }
  11.             else{
  12.                 max =Math.max(max, prices[i] - min);
  13.             }
  14.         }
  15.         return max;
  16.     }
  17. }
复制代码
[code][/code]
 本文相干图片资源来自于网络中,如有侵权请联系删除!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表