前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【力扣/牛客刷题】136. 只出现一次的数字 || 75. 颜色分类 || 215. 数组中的第K个最大元素

【力扣/牛客刷题】136. 只出现一次的数字 || 75. 颜色分类 || 215. 数组中的第K个最大元素

作者头像
xxxflower
发布2023-04-16 17:42:50
2240
发布2023-04-16 17:42:50
举报
文章被收录于专栏:《数据结构》

题目OJ链接:136. 只出现一次的数字

在这里插入图片描述
在这里插入图片描述

【题目分析】这个题我们可以通过异或来求。两个相同的数异或之后为0,让数组中的数全部异或。最后得到的就是单出来的数字。于是我们可以得到以下代码:

代码语言:javascript
复制
class Solution {
    public int singleNumber(int[] nums) {
        int ret = nums[0];
        for(int i = 1;i < nums.length;i++){
            ret ^= nums[i];
        }
        return ret;
    }
} 
在这里插入图片描述
在这里插入图片描述

题目OJ链接:75. 颜色分类

在这里插入图片描述
在这里插入图片描述

【题目分析】这个题我们本来可以用sort直接解决,但是题目不让用[doge].那我们用冒泡排序法:

代码语言:javascript
复制
class Solution {
    public void sortColors(int[] nums) {
       for(int i = 0;i < nums.length-1;i++){
           for(int j = 0;j < nums.length - i - 1;j++){
               if(nums[j]>nums[j+1]){
                int temp = nums[j];
               nums[j] = nums[j+1];
               nums[j+1] = temp;
               }             
           }
       }      
    }
}
在这里插入图片描述
在这里插入图片描述

至于排序,我们后续的学习会遇到。我们将系统学习排序有关的内容。

题目OJ链接:215. 数组中的第K个最大元素

在这里插入图片描述
在这里插入图片描述

【题目分析】我首先想到的是用冒泡排序法将数组排序,然后在返回第k个值。但是尝试了之后,发现冒泡排序法的时间复杂度过高。只能先用Arrays.sort(nums);(此题也是排序有关的问题,以后学完了排序会返回来重新写这个题。)

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
class Solution {
    public int findKthLargest(int[] nums, int k) {
        Arrays.sort(nums);
        return nums[nums.length - k];
    }
}
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档