• 算法---找出数组中的所有孤独数字(Kotlin)


    题目

    给你一个整数数组 nums 。如果数字 x 在数组中仅出现 一次 ,且没有 相邻 数字(即,x + 1 和 x - 1)出现在数组中,则认为数字 x 是 孤独数字 。

    返回 nums 中的 所有 孤独数字。你可以按 任何顺序 返回答案。

    示例 1:

    输入:nums = [10,6,5,8]
    输出:[10,8]
    解释:

    • 10 是一个孤独数字,因为它只出现一次,并且 9 和 11 没有在 nums 中出现。
    • 8 是一个孤独数字,因为它只出现一次,并且 7 和 9 没有在 nums 中出现。
    • 5 不是一个孤独数字,因为 6 出现在 nums 中,反之亦然。
      因此,nums 中的孤独数字是 [10, 8] 。
      注意,也可以返回 [8, 10] 。
      示例 2:

    输入:nums = [1,3,5,3]
    输出:[1,5]
    解释:

    • 1 是一个孤独数字,因为它只出现一次,并且 0 和 2 没有在 nums 中出现。
    • 5 是一个孤独数字,因为它只出现一次,并且 4 和 6 没有在 nums 中出现。
    • 3 不是一个孤独数字,因为它出现两次。
      因此,nums 中的孤独数字是 [1, 5] 。
      注意,也可以返回 [5, 1] 。

    提示:

    1 <= nums.length <= 105
    0 <= nums[i] <= 106

    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/find-all-lonely-numbers-in-the-array
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    解决思路

    使用Map就可以解决

    解决方法

        fun findLonely(nums: IntArray): List<Int> {
            var map = HashMap<Int, Int>()
            nums.forEach {
                map[it] = map.getOrDefault(it, 0) + 1
            }
            var result = ArrayList<Int>()
            map.forEach { (k, v) ->
    //            println("$k $v")
                if (v == 1 && map.getOrDefault(k + 1, 0) == 0 && map.getOrDefault(k -1, 0) == 0){
                    result.add(k)
                }
            }
            return result
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    总结

    1.来个算法,找出孤单的人? 我还是在榜上的。
    周六日窝在家实在没意思,来公司吧,点外卖吃,贵就贵吧
    但是在这个破城市 不努力的话
    混日子有什么意思呢?为的就是留在这里 要么CF自由

    2.一个人成长的时候 注定要孤独

    3.看到别人备孕都是锻炼身体,吃什么补身体,我觉得,学点育儿教育,学习怎么去教育一个孩子,更加重要。

  • 相关阅读:
    手机ip地址是实时位置吗
    RK3588开发板的性能参数、功耗及功能特点|飞凌动态讲解
    客服常用100句用语帮您全面搞定客服回复
    这款信创国产化传输方案 安全又可靠!
    回收站删除的文件怎么恢复,2个方法汇总助您快速解决
    JMeter性能测试
    1) 数字信号及其基本运算
    rsync
    北京化工大学数据结构2022/11/10作业 题解
    Pytorch CPU版本安装教程
  • 原文地址:https://blog.csdn.net/u013270444/article/details/126676792