[学习报告]《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;
    }
}
目录
打赏
0
0
0
0
2
分享
相关文章
探索鸿蒙的蓝牙A2DP与访问API:从学习到实现的开发之旅
在掌握了鸿蒙系统的开发基础后,我挑战了蓝牙功能的开发。通过Bluetooth A2DP和Access API,实现了蓝牙音频流传输、设备连接和权限管理。具体步骤包括:理解API作用、配置环境与权限、扫描并连接设备、实现音频流控制及动态切换设备。最终,我构建了一个简单的蓝牙音频播放器,具备设备扫描、连接、音频播放与停止、切换输出设备等功能。这次开发让我对蓝牙技术有了更深的理解,也为未来的复杂项目打下了坚实的基础。
241 58
探索鸿蒙的蓝牙A2DP与访问API:从学习到实现的开发之旅
自学记录鸿蒙API 13:Calendar Kit日历功能从学习到实践
本文介绍了使用HarmonyOS的Calendar Kit开发日程管理应用的过程。通过API 13版本,不仅实现了创建、查询、更新和删除日程等基础功能,还深入探索了权限请求、日历配置、事件添加及查询筛选等功能。实战项目中,开发了一个智能日程管理工具,具备可视化管理、模糊查询和智能提醒等特性。最终,作者总结了模块化开发的优势,并展望了未来加入语音助手和AI推荐功能的计划。
402 1
|
9月前
【LeetCode-每日一题】 删除排序数组中的重复项
【LeetCode-每日一题】 删除排序数组中的重复项
60 4
|
9月前
|
Leetcode第三十三题(搜索旋转排序数组)
这篇文章介绍了解决LeetCode第33题“搜索旋转排序数组”的方法,该问题要求在旋转过的升序数组中找到给定目标值的索引,如果存在则返回索引,否则返回-1,文章提供了一个时间复杂度为O(logn)的二分搜索算法实现。
72 0
Leetcode第三十三题(搜索旋转排序数组)
淘宝 API:关键词搜商品列表接口,助力商家按价格销量排序分析数据
此接口用于通过关键词搜索淘宝商品列表。首先需在淘宝开放平台注册并创建应用获取API权限,之后利用应用密钥和访问令牌调用接口。请求参数包括关键词、页码、每页数量、排序方式及价格区间等。返回结果含总商品数量及具体商品详情。使用时需注意签名验证及官方文档更新。
LeetCode第83题删除排序链表中的重复元素
文章介绍了LeetCode第83题"删除排序链表中的重复元素"的解法,使用双指针技术在原链表上原地删除重复元素,提供了一种时间和空间效率都较高的解决方案。
LeetCode第83题删除排序链表中的重复元素
LeetCode第34题在排序数组中查找元素的第一个和最后一个位置
这篇文章介绍了LeetCode第34题"在排序数组中查找元素的第一个和最后一个位置"的解题方法,通过使用双指针法从数组两端向中间同时查找目标值,有效地找到了目标值的首次和最后一次出现的索引位置。
LeetCode第34题在排序数组中查找元素的第一个和最后一个位置
力扣随机一题 哈希表 排序 数组
力扣随机一题 哈希表 排序 数组
72 1
|
11月前
|
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
92 0
【Leetcode刷题Python】34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
解决LeetCode "在排序数组中查找元素的第一个和最后一个位置" 问题的方法。第一种方法是使用两次二分查找,首先找到目标值的最左边界,然后找到最右边界。第二种方法是利用Python的list.index()方法,先正序找到起始位置,再逆序找到结束位置,并给出了两种方法的Python实现代码。
122 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问