[学习报告]《LeetCode零基础指南》(第六讲) C排序API

简介: [学习报告]《LeetCode零基础指南》(第六讲) C排序API

第一题:912. 排序数组


不花里胡哨直接上。


class Solution {
    public int[] sortArray(int[] arr) {
        Arrays.sort(arr);
        return arr;
}}


微信图片_20220106113647.png

第二题:169. 多数元素


class Solution {
    // 摩尔投票法
    public int majorityElement(int[] nums) {
        int res = 0, count = 0;
        for (int i = 0; i < nums.length; i++) {
            if (count == 0) {
                res = nums[i];
                count++;
            }
            else {
                if (res == nums[i]) count++;
                else count--;
            }
        }
        return res;
    }
}


微信图片_20220106113708.png


第三题:217. 存在重复元素


class Solution {
  public boolean containsDuplicate(int[] nums) {
      //比较相邻的元素是否相同即可
         Arrays.sort(nums);
         for(int i=0;i<nums.length-1;i++){
              if(nums[i]==nums[i+1]){
                  return true;
              }
         }
         return false;
}}


微信图片_20220106113731.png


第四题:164. 最大间距


class Solution {
    public int maximumGap(int[] nums) {
        Arrays.sort(nums);
        int max=0;
        if(nums.length==1){return 0;}
        for(int i=0;i<nums.length-1;i++){
            int count=nums[i+1]-nums[i];//一组一组赋值一组一组的比
             max=max>count?max:count;
        }
        return max;
    }
}


微信图片_20220106113754.png


第五题:905. 按奇偶排序数组


class Solution {
    public int[] sortArrayByParity(int[] nums) {
        int len=nums.length;
        int []arr=new int[len];
        for(int i=0,j=0,k=0;i<len;i++){//奇数从后面加,偶数从前加
            if(nums[i]%2==0){
                arr[j]=nums[i];
                j++;
            }
            else {
               arr[len-1-k]=nums[i]; 
               k++;
            }
        }
        return arr;
    }
}


image.png


第六题:539. 最小时间差


这题不会....看评论区的


class Solution {
    public int findMinDifference(List<String> timePoints) {
        int n=timePoints.size();
        if(n>1440){
            return 0;
        }
        int[] times=new int[n];
        // 将时间全部转化为分钟
        for(int i=0;i<n;i++){
            String m=timePoints.get(i).substring(0,2);
            String s=timePoints.get(i).substring(3,5);
            times[i]=Integer.parseInt(m)*60+Integer.parseInt(s);
        }
        int result=Integer.MAX_VALUE;
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                // 两个时间最小时间
                int time=Math.min(Math.abs(times[i]-times[j]),Math.abs(Math.abs(times[i]-times[j])-1440));
                // 所有时间最小差
                result=Math.min(time,result);
            }
        }
        return result;
    }
}


第七题:976. 三角形的最大周长


class Solution {//贪心算法
    public int largestPerimeter(int[] nums) {
        Arrays.sort(nums);
        for(int  i = nums.length-1; i>=2;i--){
            if(nums[i-2] + nums[i-1] > nums[i]) 
            return (nums[i-2]+nums[i-1]+nums[i]); 
        }
        return 0;
    }
}


第八题:881. 救生艇


class Solution {
    public int numRescueBoats(int[] people, int limit) {
        Arrays.sort(people);
        int n = people.length;
        int i = 0, j = n - 1;
        while (i < j) {
            if (people[j] + people[i] <= limit) {
                i++;//成对走
            }
            j--;
        }//最多次数减去成对次数
        return n - i;
    }
}
目录
相关文章
|
1月前
【LeetCode-每日一题】 删除排序数组中的重复项
【LeetCode-每日一题】 删除排序数组中的重复项
19 4
|
1月前
|
API 数据安全/隐私保护 开发者
淘宝 API:关键词搜商品列表接口,助力商家按价格销量排序分析数据
此接口用于通过关键词搜索淘宝商品列表。首先需在淘宝开放平台注册并创建应用获取API权限,之后利用应用密钥和访问令牌调用接口。请求参数包括关键词、页码、每页数量、排序方式及价格区间等。返回结果含总商品数量及具体商品详情。使用时需注意签名验证及官方文档更新。
|
3月前
|
存储 算法
LeetCode第83题删除排序链表中的重复元素
文章介绍了LeetCode第83题"删除排序链表中的重复元素"的解法,使用双指针技术在原链表上原地删除重复元素,提供了一种时间和空间效率都较高的解决方案。
LeetCode第83题删除排序链表中的重复元素
|
3月前
|
算法 索引
LeetCode第34题在排序数组中查找元素的第一个和最后一个位置
这篇文章介绍了LeetCode第34题"在排序数组中查找元素的第一个和最后一个位置"的解题方法,通过使用双指针法从数组两端向中间同时查找目标值,有效地找到了目标值的首次和最后一次出现的索引位置。
LeetCode第34题在排序数组中查找元素的第一个和最后一个位置
|
3月前
|
存储 算法 Java
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
44 0
|
3月前
|
算法 索引 Python
【Leetcode刷题Python】34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
解决LeetCode "在排序数组中查找元素的第一个和最后一个位置" 问题的方法。第一种方法是使用两次二分查找,首先找到目标值的最左边界,然后找到最右边界。第二种方法是利用Python的list.index()方法,先正序找到起始位置,再逆序找到结束位置,并给出了两种方法的Python实现代码。
61 0
|
5月前
力扣随机一题 哈希表 排序 数组
力扣随机一题 哈希表 排序 数组
32 1
|
5月前
|
算法
【经典LeetCode算法题目专栏分类】【第10期】排序问题、股票问题与TOP K问题:翻转对、买卖股票最佳时机、数组中第K个最大/最小元素
【经典LeetCode算法题目专栏分类】【第10期】排序问题、股票问题与TOP K问题:翻转对、买卖股票最佳时机、数组中第K个最大/最小元素
|
5月前
|
存储 算法 数据可视化
【模拟面试问答】深入解析力扣164题:最大间距(桶排序与排序方法详解)
【模拟面试问答】深入解析力扣164题:最大间距(桶排序与排序方法详解)
|
5月前
|
存储 算法 数据可视化
深入解读力扣154题:寻找旋转排序数组中的最小值 II(多种方法及详细ASCII图解)
深入解读力扣154题:寻找旋转排序数组中的最小值 II(多种方法及详细ASCII图解)

热门文章

最新文章