当前位置: 首页 > news >正文

仪征做网站广告公司取名

仪征做网站,广告公司取名,做简历用哪个网站,江夏网站建设哈希查找#xff08;Hash Search#xff09;是一种基于哈希表#xff08;Hash Table#xff09;的数据查找方法。哈希表通过使用哈希函数将键#xff08;Key#xff09;映射到表中的位置来存储数据#xff0c;从而实现快速的数据访问。哈希查找的效率通常取决于哈希函数…哈希查找Hash Search是一种基于哈希表Hash Table的数据查找方法。哈希表通过使用哈希函数将键Key映射到表中的位置来存储数据从而实现快速的数据访问。哈希查找的效率通常取决于哈希函数的设计、哈希表的大小以及处理哈希冲突的策略。 哈希查找的工作原理 哈希函数通过哈希函数将键转换为哈希表中的索引。存储数据将数据存储在哈希表的相应位置。查找数据通过键计算哈希值直接访问数据所在的哈希表位置。处理冲突当两个不同的键产生相同的哈希值时称为哈希冲突需要采用某种策略来解决。常见的冲突解决策略包括链地址法Chaining和开放寻址法Open Addressing。 哈希查找的优缺点 优点 平均情况下哈希查找可以实现接近 O(1) 的时间复杂度。哈希表可以高效地支持大量的数据插入、查找和删除操作。 缺点 哈希表的性能依赖于哈希函数的设计和冲突解决策略。哈希表可能需要额外的存储空间来处理冲突。哈希查找不保留元素的顺序。 哈希查找的Java实现 import java.util.HashMap; import java.util.Map;public class HashSearch {private MapInteger, String hashTable;public HashSearch() {hashTable new HashMap();}public void insert(int key, String value) {hashTable.put(key, value);}public String search(int key) {return hashTable.get(key);}public static void main(String[] args) {HashSearch search new HashSearch();search.insert(1, apple);search.insert(2, banana);search.insert(3, cherry);String result search.search(2);System.out.println(Value for key 2: result);} }在面试中了解哈希查找的原理和实现是非常重要的尤其是当面试官询问关于数据结构和算法的问题时。通过实现哈希查找可以展示你对基本数据结构和算法的掌握程度。希望这些知识点和示例代码能够帮助你更好地准备面试哈希查找是大厂面试中常见的题目类型尤其是在处理大量数据和需要高效查找的场景中。以下是三道可能出现在大厂面试中的与哈希查找相关的编程题目以及相应的Java源码实现。 题目 1设计一个 LRU 缓存 描述 设计一个 LRULeast Recently Used缓存它应该支持以下操作获取数据 get 和写入数据 put。 示例 输入: [LRUCache, put, put, get, put, get, get][ [2], [1, 1], [2, 2], [1], [3, 3], [2], [4]输出: [null, null, null, 1, null, 2, 3]Java 源码 import java.util.HashMap; import java.util.Map;public class LRUCache {private final int capacity;private final MapInteger, Integer cache;private final DoublyLinkedList lru;public LRUCache(int capacity) {this.capacity capacity;this.cache new HashMap();this.lru new DoublyLinkedList();}public int get(int key) {if (cache.containsKey(key)) {lru.moveToHead(key);return cache.get(key);}return -1;}public void put(int key, int value) {if (cache.containsKey(key)) {cache.put(key, value);lru.moveToHead(key);} else {if (cache.size() capacity) {int last lru.removeTail();cache.remove(last);}cache.put(key, value);lruaddToHead(key);}}private void lruaddToHead(int key) {Node newNode new Node(key);lru.addFirst(newNode);}private void lru.moveToHead(int key) {Node node lru.find(key);if (node ! null) {lru.remove(node);lruaddToHead(key);}}private void lru removeTail() {if (!lru.isEmpty()) {lru.removeLast();}}private class DoublyLinkedList {private Node head, tail;DoublyLinkedList() {head new Node(0, 0);tail new Node(0, 0);head.next tail;tail.prev head;}void addFirst(Node node) {node.next head.next;node.prev head;head.next.prev node;head.next node;}void remove(Node node) {node.prev.next node.next;node.next.prev node.prev;}void removeLast() {if (tail.prev ! head) {Node last tail.prev;remove(last);}}Node find(int key) {Node current head.next;while (current ! tail) {if (current.key key) {return current;}current current.next;}return null;}}private class Node {int key, value;Node prev, next;Node(int key, int value) {this.key key;this.value value;}}public static void main(String[] args) {LRUCache lru new LRUCache(2);lru.put(1, 1);lru.put(2, 2);System.out.println(lru.get(1)); // 返回 1lru.put(3, 3); // 该操作会使得关键字 2 作废System.out.println(lru.get(2)); // 返回 -1 (未找到)System.out.println(lru.get(3)); // 返回 3lru.put(4, 4); // 该操作会使得关键字 1 作废System.out.println(lru.get(1)); // 返回 -1 (未找到)System.out.println(lru.get(3)); // 返回 3System.out.println(lru.get(4)); // 返回 4} }题目 2字符串哈希映射 描述 给定一个字符串将所有出现的大写字母映射到一个新字符串中映射规则为 ‘A’ - ‘a’‘B’ - ‘b’…‘Z’ - ‘z’。 示例 输入: LEETCODEISHIRING 输出: ldecodishngiJava 源码 public class MapStringToHash {public String stringHashMapping(String s) {StringBuilder result new StringBuilder();for (char ch : s.toCharArray()) {if (Character.isUpperCase(ch)) {result.append((char) (ch 32));} else {result.append(ch);}}return result.toString();}public static void main(String[] args) {MapStringToHash solution new MapStringToHash();String input LEETCODEISHIRING;String output solution.stringHashMapping(input);System.out.println(Mapped string: output);} }题目 3两个字符串的哈希映射 描述 给定两个字符串计算它们在哈希表中的相似度。如果一个字符串的字符可以通过另一个字符串中的字符进行替换得到那么这两个字符串是相似的。 示例 输入: s1 great, s2 raste 输出: trueJava 源码 import java.util.HashSet; import java.util.Set;public class HashMappingTwoStrings {public boolean areAlmostEqual(String s1, String s2) {if (s1.length() ! s2.length()) {return false;}SetCharacter set1 new HashSet();SetCharacter set2 new HashSet();for (int i 0; i s1.length(); i) {set1.add(s1.charAt(i));set2.add(s2.charAt(i));}return set1.equals(set2);}public static void main(String[] args) {HashMappingTwoStrings solution new HashMappingTwoStrings();String s1 great;String s2 raste;boolean result solution.areAlmostEqual(s1, s2);System.out.println(Strings are almost equal: result);} }这些题目和源码展示了哈希查找在解决实际问题中的应用。在面试中能够根据问题的特点选择合适的算法并实现其解决方案是非常重要的。希望这些示例能够帮助你更好地准备面试
http://www.dnsts.com.cn/news/201116.html

相关文章:

  • 网站建设推广ppt小程序商城功能
  • 单位外部网站建设价格网站搜什么关键词
  • 邵阳住建部网站前端外包网
  • 南昌网站建设模板下载网址广州网页设计师
  • 电子商务网站建设结构分析孵化器网站建设方案
  • 中小学建设网站哈尔滨市建设厅网站
  • 如何在自己网站上做支付宝吗辽宁建设厅查询网站
  • 最早做淘宝客的网站桓台网站
  • 宁波网站关键词推广做排行榜的网站知乎
  • 有源代码怎么做网站如何在网站后台做超链接到文档
  • 手机建站图片制作小程序的方法如何自己制作小程序
  • 大学做网站携创网中国工商注册网
  • 如何做亚马逊备案的网站南京专业网站设计哪个品牌
  • 网站首页菜单栏表怎么做长春生物和北京生物是一家吗
  • 青岛做网站哪家好织梦网站内容替换
  • html5网站模板做1688网站需要懂英语吗
  • 网站建设与维护课难吗宜兴建设局拍卖房产的网站
  • 阿里云域名如何做网站在线制作图片小视频
  • 响应式网站怎么做django 网站开发
  • 单页网站模板 带在线订单哪里可以学做资料员的网站
  • 公司网站申请济南做网站价格
  • 做网站页面提供的图结构网站文章怎么做才能被快速收录
  • wordpress 4.9 优化渭南seo快速排名
  • 有什么做网站的公司网站开发费入什么费用
  • 网站百度收录快南宁希噢网站开发工作室
  • wordpress适合视频网站吗网站备案需要年检吗
  • 哈尔滨做网站哪里好推荐大良网站建设
  • 电商网站用什么框架做今天晚上19点新闻联播直播回放
  • 网站建设必须要备案吗天津 网站制作
  • 网站要怎么做二手书网站建设目标