返回顶部
首页 > 资讯 > 后端开发 > Python >Java真题实练掌握哈希表的使用
  • 588
分享到

Java真题实练掌握哈希表的使用

2024-04-02 19:04:59 588人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1.多数元素题目描述思路详解代码与结果2.数组中的k-diff数对题目描述思路详解代码与结果3.缺失的第一个正数题目描述思路详解代码与结果1.多数元素 题目描述 思路详解 这个

1.多数元素

题目描述

思路详解

这个思路比较简单,先排序,排序过后遍历如果后一个等于前一个输出就好

代码与结果

class Solution {
    public int majorityElement(int[] nums) {
        Arrays.sort(nums);
        return nums[nums.length / 2];
    }
}

2.数组中的k-diff数对

题目描述

思路详解

这里我们采用排序和双指针的方法。

我们首先把数组进行排序,然后利用前后两个指针遍历数组,找出符合条件的组合。

注意:这里我们我们要注意结果的重复,也要注意两个指针前进的条件。

代码与结果

class Solution {
    public int findPairs(int[] nums, int k) {
        Arrays.sort(nums);
        int n = nums.length, y = 0, res = 0;
        for (int x = 0; x < n; x++) {
            if (x == 0 || nums[x] != nums[x - 1]) {
                while (y < n && (nums[y] < nums[x] + k || y <= x)) {
                    y++;
                }
                if (y < n && nums[y] == nums[x] + k) {
                    res++;
                }
            }
        }
        return res;
    }
}

3.缺失的第一个正数

题目描述

思路详解

这一题属于比较困难的题目。

我们首先想到的就是排序然后遍历,可是这违背了题目时间复杂度是常数的要求。

那么我们用哈希表进行存储遍历呢,显然这也超出了时间复杂度的限制。

小编也是参考了题解,现在就来用自己的话说说这一题的做法吧.

对数组进行遍历,对于遍历到的数 x,如果它在[1,N] 的范围内,那么就将数组中的第x−1 个位置(注意:数组下标从 0 开始)打上「标记」。在遍历结束之后,如果所有的位置都被打上了标记,那么答案是N+1,否则答案是最小的没有打上标记的位置加 1。

这里是采用了仿哈希表的结构。

代码与结果

class Solution {
    public int firstMissingPositive(int[] nums) {
        int n = nums.length;
        for (int i = 0; i < n; ++i) {
            if (nums[i] <= 0) {
                nums[i] = n + 1;
            }
        }
        for (int i = 0; i < n; ++i) {
            int num = Math.abs(nums[i]);
            if (num <= n) {
                nums[num - 1] = -Math.abs(nums[num - 1]);
            }
        }
        for (int i = 0; i < n; ++i) {
            if (nums[i] > 0) {
                return i + 1;
            }
        }
        return n + 1;
    }
}

到此这篇关于Java真题实练掌握哈希表的使用的文章就介绍到这了,更多相关Java哈希表内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java真题实练掌握哈希表的使用

本文链接: https://www.lsjlt.com/news/164818.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java真题实练掌握哈希表的使用
    目录1.多数元素题目描述思路详解代码与结果2.数组中的k-diff数对题目描述思路详解代码与结果3.缺失的第一个正数题目描述思路详解代码与结果1.多数元素 题目描述 思路详解 这个...
    99+
    2024-04-02
  • Java 集合框架掌握 Map 和 Set 的使用(内含哈希表源码解读及面试常考题)
    目录1. 搜索1.1 场景引入1.2 模型2. Map2.1 关于 Map 的介绍2.2 关于 Map.Entry<K, V> 的介绍2.3 Map 的常用方法说明2.4...
    99+
    2024-04-02
  • Java 链表实战真题训练
    目录1、删除值为val的所有节点2、反转链表3、返回链表中间节点4、返回链表第K个节点5、合并有序链表6、按值分割链表7、判读回文链表8、找两个链表的公共节点9、判断成环链表10、返...
    99+
    2024-04-02
  • Java实现哈希表的基本功能
    目录一、哈希表头插法放入元素二、哈希表尾插法放入元素三、哈希表头插、尾插扩容四、找到key对应的value五、运行结果六、哈希表的泛型实现七、为什么JDK1.7及之前使用头插法而JD...
    99+
    2024-04-02
  • 讲解Java 哈希表(google 公司的上机题)
    这篇文章主要介绍“讲解Java 哈希表(google 公司的上机题)”,在日常操作中,相信很多人在讲解Java 哈希表(google 公司的上机题)问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”讲解Java ...
    99+
    2023-06-07
  • PHP 哈希表的原理、实现与常见问题
    哈希表通过哈希函数将键映射到数组下标,实现快速查找、插入和删除。php 使用数组和 md5() 哈希函数实现哈希表,通过线性探查解决冲突。常见问题包括哈希冲突(可通过增加数组大小或优化哈...
    99+
    2024-05-07
    php 哈希表
  • 一文详解Python中哈希表的使用
    目录1. 前言2. 哈希表2.1 哈希函数2.2 哈希算法2.3 常见哈希算法2.4 哈希冲突3.总结1. 前言 哈希表或称为散列表,是一种常见的、使用频率非常高的数据存储方案。 哈...
    99+
    2024-04-02
  • 掌握Go语言文档中的crypto/md5.Sum函数实现MD5哈希计算
    掌握Go语言文档中的crypto/md5.Sum函数实现MD5哈希计算,需要具体代码示例在当今信息时代,数据的安全性越来越受到重视。而哈希算法是一种常用的数据安全保护方式之一。MD5(Message Digest Algorithm 5)是...
    99+
    2023-11-04
    Go语言 crypto/md MD哈希计算
  • Java数据结构之实现哈希表的分离链接法
    哈希表的分离链接法 原理 Hash Table可以看作是一种特殊的数组。他的原理基本上跟数组相同,给他一个数据,经过自己设置的哈希函数变换得到一个位置,并在这个位置当中放置该数据。哦...
    99+
    2024-04-02
  • Java数据结构中实现哈希表的分离链接法
    这篇文章主要介绍“Java数据结构中实现哈希表的分离链接法”,在日常操作中,相信很多人在Java数据结构中实现哈希表的分离链接法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java数据结构中实现哈希表的分离...
    99+
    2023-06-20
  • C++中使用哈希表(unordered_map)的一些常用操作方法
    目录1.建立基本数据类型的哈希表2.向哈希表中添加元素1).insert 函数2).用数组方法直接添加3.成员函数begin(),end()函数find()查找函数count() 查...
    99+
    2024-04-02
  • 如何使用Go语言构建高效的云上哈希表?
    随着云计算技术的广泛应用,云上哈希表成为了云计算中的重要数据结构之一。而在构建高效的云上哈希表中,Go语言则是一种非常适合的语言。本文将介绍如何使用Go语言构建高效的云上哈希表。一、云上哈希表概述云上哈希表是一种基于云计算技术实现的分布式哈...
    99+
    2023-05-17
    Go语言 构建 云上哈希表
  • 如何在 Java 面试中表现出对同步和 Spring 的熟练掌握?
    Java 是一门广泛应用于各种企业级应用程序的编程语言,因此在面试过程中,对于 Java 开发者而言,对于同步和 Spring 的熟练掌握是至关重要的。在本文中,我们将探讨如何在 Java 面试中表现出对同步和 Spring 的熟练掌握。 ...
    99+
    2023-09-21
    面试 同步 spring
  • 数组是Java中最常用的数据结构,你真的掌握了吗?
    数组是Java中最常用的数据结构,它是一种线性数据结构,可以存储相同数据类型的元素。数组可以帮助我们更好地组织和管理数据,但是你真的掌握了吗?在本文中,我们将深入讨论Java中的数组。 数组的定义和声明 在Java中,数组是一个对象,它可以...
    99+
    2023-07-09
    关键字 数组 开发技术
  • Java 轻松掌握字符缓冲流的使用
    目录一、字符缓冲流二、字符缓冲流的特有方法一、字符缓冲流 BufferedWriter:文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入。可以指定缓冲区大小,或者...
    99+
    2024-04-02
  • 一文带你掌握Java中Scanner类的使用
    java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。下面是创建 Scanner 对象的基本语法: Scanner s = ...
    99+
    2023-05-17
    Java Scanner类使用 Java Scanner类 Java Scanner
  • 怎么使用Golang哈希算法实现配置文件的监控功能
    这篇文章主要介绍“怎么使用Golang哈希算法实现配置文件的监控功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Golang哈希算法实现配置文件的监控功能”文章能帮助大家解决问题。SHA(...
    99+
    2023-07-05
  • 由浅入深快速掌握Java 数组的使用
    目录1.数组定义格式1.1 数组概述1.2 什么是数组1.3 数组的定义格式:2.数组初始化之动态初始化2.1 数组初始化概述2.2 数组初始化方法3.数组元素访问3.1 数组元素访...
    99+
    2024-04-02
  • 轻松解决依赖问题:熟练掌握pip源安装方法,确保高效实用
    ...
    99+
    2024-01-18
    依赖问题 pip源安装 高效实用
  • ASP 缓存 重定向 关键字的使用技巧,你真的掌握了吗?
    ASP 缓存、重定向和关键字是 ASP.NET 中非常重要的概念,它们在提高网站性能和优化 SEO 方面起着至关重要的作用。在本文中,我们将介绍 ASP 缓存、重定向和关键字的使用技巧,帮助您更好地理解它们并掌握它们的用法。 ASP 缓存 ...
    99+
    2023-08-08
    缓存 重定向 关键字
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作