Rehashing

原创 2016年05月30日 22:42:01

这道题考查的是coding的熟练程度,我感觉,对于数组和链表的基本操作。

要注意的是对于值为负数的取模处理, if you directly calculate -4 % 3 you will get -1. You can use function: a % b = (a % b + b) % b to make it is a non negative integer.

/**
     * @param hashTable: A list of The first node of linked list
     * @return: A list of The first node of linked list which have twice size
     */    
    public ListNode[] rehashing(ListNode[] hashTable) {
        // write your code here
        if (hashTable == null || hashTable.length == 0) {
            return null;
        }
        int length = hashTable.length*2;
        ListNode[] results = new ListNode [length];
        for (ListNode node: hashTable) {
            if (node != null) {
                while(node != null) {
                    int hashCode = hashcode(node.val, length);
                    if (results[hashCode] == null) {
                        results[hashCode] = new ListNode(node.val);
                    } else {
                        ListNode cur = results[hashCode];
                        while (cur.next != null) {
                            cur = cur.next;
                        }
                        cur.next = new ListNode(node.val);
                    }
                    node = node.next;
                }
            }
        }
        return results;
    }
    
    private int hashcode(int key, int capacity) {
        if (key > 0) {
            return key % capacity;
        } 
        ////2
        else {
            return (key % capacity + capacity) % capacity;
        }
        ////2
    }


面试总结hashmap

考点: 1.hashing的概念 2.HashMap中解决碰撞的方法 3.equals()和hashCode()的应用,以及它们在HashMap中的重要性 4.不可变对象的好处...
  • HD243608836
  • HD243608836
  • 2017年11月30日 20:02
  • 79

#129 Rehashing

题目描述: The size of the hash table is not determinate at the very beginning. If the total size ...
  • haifischxia
  • haifischxia
  • 2016年08月24日 14:12
  • 65

Lintcode129 Rehashing solution 题解

【题目描述】 The size of the hash table is not determinate at the very beginning. If the total size o...
  • nekomilk
  • nekomilk
  • 2017年09月22日 15:43
  • 70

[刷题]Rehashing

[LintCode]Rehashing /** * Definition for ListNode * public class ListNode { * int val; * ...
  • willshine19
  • willshine19
  • 2015年09月01日 09:37
  • 154

LintCode数据结构题总结

Lintcode数据结构有这么一些题目: 495. Implement Stack 用任意的数据结构实现一个栈,我是用List实现的,记得写的时候写成List array = new Ar...
  • luoshengkim
  • luoshengkim
  • 2016年06月10日 22:46
  • 1636

mysql Enable automatic rehashing方式登陆hang问题

登陆myql数据库的crmdb  schema一直hang: [root@bssmysqlcsdb01 ~]# mysql -uroot -proot_beehive -Dcrmdb Warnin...
  • DBAdream
  • DBAdream
  • 2014年08月27日 22:48
  • 471

LintCode:重哈希

LintCode:重哈希""" Definition of ListNode class ListNode(object): def __init__(self, val, next=None)...
  • u012225151
  • u012225151
  • 2016年05月12日 20:05
  • 815

lintCode(129)——重哈希

问题描述:哈希表容量的大小在一开始是不确定的。如果哈希表存储的元素太多(如超过容量的十分之一),我们应该将哈希表容量扩大一倍,并将所有的哈希值重新安排。假设你有如下一哈希表: size=3, c...
  • nawuyao
  • nawuyao
  • 2016年03月22日 14:53
  • 564
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Rehashing
举报原因:
原因补充:

(最多只允许输入30个字)