首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在哈希表中找到最大值,然后打印具有该值的所有变量(在C中)

在哈希表中找到最大值,然后打印具有该值的所有变量(在C中)

在C语言中,哈希表是一种常用的数据结构,用于存储键值对。哈希表通过哈希函数将键映射到一个索引位置,以实现快速的插入、查找和删除操作。

要在哈希表中找到最大值,并打印具有该值的所有变量,可以按照以下步骤进行:

  1. 创建一个哈希表,并初始化为空。
  2. 定义一个变量max_value,用于记录最大值,初始值设为一个较小的值。
  3. 定义一个数组或链表,用于存储具有最大值的变量。
  4. 遍历哈希表中的所有键值对。
  5. 对于每个键值对,比较其值与max_value的大小。
    • 如果当前值大于max_value,则更新max_value为当前值,并清空存储变量的数组或链表。
    • 如果当前值等于max_value,则将对应的变量添加到数组或链表中。
    • 如果当前值小于max_value,则不进行任何操作。
  • 遍历结束后,打印存储变量的数组或链表中的所有变量。

以下是一个示例代码:

代码语言:txt
复制
#include <stdio.h>
#include <stdlib.h>

#define HASH_SIZE 100

// 定义哈希表节点结构
typedef struct Node {
    int key;
    int value;
    struct Node* next;
} Node;

// 创建哈希表
Node** createHashTable() {
    Node** hashTable = (Node**)malloc(sizeof(Node*) * HASH_SIZE);
    for (int i = 0; i < HASH_SIZE; i++) {
        hashTable[i] = NULL;
    }
    return hashTable;
}

// 哈希函数
int hash(int key) {
    return key % HASH_SIZE;
}

// 向哈希表中插入键值对
void insert(Node** hashTable, int key, int value) {
    int index = hash(key);
    Node* newNode = (Node*)malloc(sizeof(Node));
    newNode->key = key;
    newNode->value = value;
    newNode->next = NULL;

    if (hashTable[index] == NULL) {
        hashTable[index] = newNode;
    } else {
        Node* curr = hashTable[index];
        while (curr->next != NULL) {
            curr = curr->next;
        }
        curr->next = newNode;
    }
}

// 在哈希表中查找最大值,并打印具有该值的所有变量
void findMaxValue(Node** hashTable) {
    int max_value = INT_MIN;
    Node* max_nodes = NULL;

    for (int i = 0; i < HASH_SIZE; i++) {
        Node* curr = hashTable[i];
        while (curr != NULL) {
            if (curr->value > max_value) {
                max_value = curr->value;
                max_nodes = curr;
            } else if (curr->value == max_value) {
                curr->next = max_nodes;
                max_nodes = curr;
            }
            curr = curr->next;
        }
    }

    printf("最大值为:%d\n", max_value);
    printf("具有最大值的变量:");
    Node* curr = max_nodes;
    while (curr != NULL) {
        printf("%d ", curr->key);
        curr = curr->next;
    }
    printf("\n");
}

int main() {
    Node** hashTable = createHashTable();

    // 向哈希表中插入键值对
    insert(hashTable, 1, 10);
    insert(hashTable, 2, 20);
    insert(hashTable, 3, 30);
    insert(hashTable, 4, 40);
    insert(hashTable, 5, 50);
    insert(hashTable, 6, 50);

    // 在哈希表中查找最大值,并打印具有该值的所有变量
    findMaxValue(hashTable);

    return 0;
}

在这个示例代码中,我们首先创建了一个哈希表,并向其中插入了一些键值对。然后,我们通过遍历哈希表的方式找到最大值,并将具有最大值的变量存储在一个链表中。最后,我们打印出最大值和具有最大值的变量。

请注意,这只是一个简单的示例,实际应用中可能需要根据具体情况进行适当的修改和扩展。另外,腾讯云提供了丰富的云计算产品,可以根据具体需求选择适合的产品进行开发和部署。具体的产品介绍和链接地址可以在腾讯云官网上查找。

相关搜索:如何使用javascript在具有多个表的树中找到td单元格的最大值?在SQL Server中具有列名的所有表中的更新值在SQL中查找数据库中所有表的最大值选择一个表中具有额外字段的所有记录,该字段可显示是否在另一个表中找到该记录在kdb中计算表中每个变量的最小值和最大值如何从表中获取值,该值的id在另一个表中找到在sys.tables中声明一个基于名称的变量,然后在dynamic SQL中删除基于该变量的表在kinect编程过程中打印C#、xaml中变量的值,选择一个值,然后在c#的同一查询中更新该值在spark sql中找到第三列中具有最大值的两列组合。使用此列组合查找历史最小值和最大值如何让我的按钮知道输入框中的内容,然后在新窗口中打印该值?将工作表名称设置为用户定义的变量,然后在同一代码中引用该变量查找在另一个表中具有所有值的列在R中,如何选择/子集具有大于某个值的站点,然后保留所有包含的值小于所选值的站点?在C++20中读/写具有给定键的std::multimap的所有值?对于在另一列中列出的相同条目ID,打印一列中具有最大值的行PHP/MySQL:在将值插入到表中后,变量的值会丢失,并且无法在文件末尾打印出来?检查组中的所有成员是否具有相同的值,然后在一个数据帧中获取所有成员如何仅选择表1中在表2中具有相同值的行(C# -实体框架到实体在具有声明为空变量的函数中,switch语句如何自动将其返回值分配给该空变量?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

数据结构与算法-面试

递归中序遍历右子树 后序遍历:若二叉树为空树,则执行空逻辑,否则: 递归后序遍历左子树 递归后序遍历右子树 访问根节点 简述解决Hash冲突方法 开放定址法:当发生哈希冲突时,如果哈希未被装满,那么可以把这个存放到冲突位置下一个空位置中去...因为堆排序过程可能下边节点会交换到原来相对位置前边。 快速排序。因为快速排序排序过程也是需要进行交换交换时候同一相对顺序可能会改变。...简述直接选择排序 直接选择排序:每次未排序序列中找到最小元素,和未排序序列第一个元素交换位置,再在剩余未排序序列重复操作直到所有元素排序完毕。 排序算法不稳定。...添加顶点 w 和已经在生成树上顶点v 之间必定存在一条边,并且所有连通顶点 v 和 w 之间取值最小。之后继续往生成树上添加顶点,直至生成树上含有 n-1 个顶点为止。...n次循环至n个顶点全部遍历: 从权数组中找到最小,标记边端点k 打印该路径及权 如果存在经过顶点k到顶点i边比v->i小 更新权数组及对应路径 简述堆 堆是一种完全二叉树形式,其可分为最大值堆和最小

62730

一网打尽面试中常被问及8种数据结构

链表操作 搜索:通过简单线性搜索在给定链表中找到键为k第一个元素,并返回指向元素指针 插入:链接列表插入一个密钥。...当存储时,直接寻址使用和键之间一对一映射。但是,当存在大量键值对时,此方法存在问题。具有很多记录,并且非常庞大,考虑到典型计算机上可用内存,可能不切实际甚至无法存储。...为避免此问题,我们使用哈希哈希函数 名为哈希函数(h)特殊函数用于克服直接寻址上述问题。 直接访问,带有密钥k存储插槽k。...使用哈希函数,我们可以计算出每个都指向(插槽)索引。使用给定键哈希函数计算称为哈希,它表示映射到索引。...有向图 如果图形G所有边缘都具有指示什么是起始顶点和什么是终止顶点方向,则称图形为有向图。 我们说(u,v)从顶点u入射或离开顶点u,然后入射到或进入顶点v。 自环:从顶点到自身边。

7810
  • 每个程序员都必须知道8种数据结构

    链表操作 · 搜索:通过简单线性搜索在给定链表中找到键为k第一个元素,并返回指向元素指针 · 插入:链接列表插入一个密钥。...当存储时,直接寻址使用和键之间一对一映射。但是,当存在大量键值对时,此方法存在问题。具有很多记录,并且非常庞大,考虑到典型计算机上可用内存,可能不切实际甚至无法存储。...为避免此问题,我们使用哈希哈希函数 名为哈希函数(h)特殊函数用于克服直接寻址上述问题。 直接访问,带有密钥k存储插槽k。...使用哈希函数,我们可以计算出每个都指向(插槽)索引。使用给定键哈希函数计算称为哈希,它表示映射到索引。...有向图 如果图形G所有边缘都具有指示什么是起始顶点和什么是终止顶点方向,则称图形为有向图。 我们说(u,v)从顶点u入射或离开顶点u,然后入射到或进入顶点v。 自环:从顶点到自身边。

    1.4K10

    女皇武则天:我不愿被 extends

    我们可以将通用方法和成员变量放在父类,达到代码复用目的;然后将特殊方法和成员变量放在子类,除此之外,子类还可以覆盖父类方法。这样,子类也就焕发出了新生命力。...继承可以使得子类具有父类成员变量和方法,还可以重新定义、追加成员变量和方法等。 设计继承时候,可以将通用方法和成员变量放在父类。...hashCode() 是一个 native 方法,而且返回类型是整形;实际上,方法将对象在内存地址作为哈希码返回,可以保证不同对象返回不同。...向哈希添加 Object 时,首先调用 hashCode() 方法计算 Object 哈希码,通过哈希码可以直接定位 Object 哈希位置。...当方法执行过程抛出异常时,可以直接调用 POJO toString() 方法打印其属性,便于排查问题。

    41120

    进阶 | 我实现了javascript 哈希,并进行性能比较

    方法计算简单,适用范围广,是经常使用一种哈希函数,可以表示为: hash(K=K mod C;方法关键是常数选取,一般要求是接近或等于哈希本身长度,研究理论表明,常数选素数时效果最好...数字分析法:方法是取数据元素关键字某些取值较均匀数字来作为哈希地址方法,这样可以尽量避免冲突,但是方法只适合于所有关键字已知情况,对于想要设计出更加通用哈希并不适用 平方求和法:对当前字串转化为...,a越大,空间利用率越高,为了兼顾哈希冲突和存储空间利用率,通常将a控制0.6-0.9之间,而.netHashTable则直接将a最大值定义为0.72 (虽然微软官方MSDN声明HashTable...3)链地址法(拉链法) 将所有关键字为同义词记录存储同一线性链表。...所有关键字和基本关键字为同义词记录,不管他们由哈希函数得到哈希地址是什么,一旦发生冲突,都填入溢出

    59510

    RedisLRU缓存淘汰算法实现

    LRU会使用一个链表维护缓存每个数据访问情况,并根据数据实时访问,调整数据链表位置,然后通过数据链表位置,表示数据是最近刚访问,还是已有段时间未访问。...getLRUClock会把LRU时钟和宏定义LRU_CLOCK_MAX(LRU时钟能表示最大值)做与运算。...只要一个KV对被访问,其LRU时钟就会被更新!而当一个KV对被访问时,访问操作最终都会调用lookupKey。 lookupKey会从全局哈希查找要访问KV对。...采样哈希,由maxmemory_policy配置项决定: 若maxmemory_policy=allkeys_lru,则待采样哈希是Redis Server全局哈希,即在所有KV对采样...否则,待采样哈希就是保存着设置了TTLK哈希

    1.2K20

    哈希冲突常用解决方法

    这样关键字和数据集合位置存在一定关系,可以根据这种关系快速查询。 非哈希:与哈希表相对应,集合数据和其存放位置没任何关联关系集合。...2.1 开放寻址法 开放寻址法又叫做开放定址法、开地址法,从发生冲突那个单元起,按照一定次序,从哈希中找到一个空闲单元。然后把发生冲突元素存入到单元一种方法。...其中 h1 和前面的 h 一样,以关键字为自变量,产生一个 0 至 m-1 之间数作为散列地址;h2 也以关键字为自变量,产生一个 1 至 m-1 之间并和 m 互素数(即 m 不能被数整除)作为探查序列地址增量...2.2 链地址法(拉链法) 链接地址法思路是将哈希相同元素构成一个同义词单链表,并将单链表头指针存放在哈希第i个单元,查找、插入和删除主要在同义词链表中进行。...2.4 建立公共溢出区 将哈希分为公共和溢出,当溢出发生时,将所有溢出数据统一放到溢出区。

    4.3K30

    剑指Offer题解 - Day22

    最长不含重复字符子字符串」 力扣题目链接[1] 请从字符串找出一个最长不包含重复字符子字符串,计算最长子字符串长度。...提示: s.length <= 40000 思路: 本题如果采用暴力法进行破解的话,首先需要找到字符串所有子串,然后判断每个子串内字符是否重复。上述过程需要复杂度是O(n^3) 。...然后更新当前字符哈希最新索引。...如果临时变量存储dp[j - 1]小于j - i ,意味着s[i]不在dp[j - 1] 内,此时执行dp[j - 1] + 1 ;否则,意味着s[i]dp[j - 1] 内,最长不重复子串长度为...每次循环保存最大值,最终返回即可。 复杂度方面,由于需要遍历整个字符串,因此时间复杂度是O(n) ,而哈希最多存储128个ASCII 码,因此空间复杂度是O(1) 。

    15220

    专科生阿里大数据一面面经「已过」「附详细答案」

    b.高效率解决办法:为了加快查找速度,每个节点配置路由,路由存储 m 条路由信息(m 为哈希空间二进制数值比特位长度)。...x<=m),则将位数组第 x 位置为1, c.查询:当查询某个成员a是否集合S中出现时,使用相同k个哈希函数计算,如果其对应位置全部为1,则a属于集合S,只要有一个位置为0,则a 不属于集合S。...name="大数据肌肉猿"; } private static String name; 上面这段代码,把name打印出来是大数据肌肉猿 由此可见,变量名首先被加载,而赋值时候,无论是直接在变量上赋值还是静态代码块赋值...Volatile本质告诉JVM 当前变量寄存器(工作内存)是不确定,需要从主存中去读取 ,Synchronized则是锁定当前变量,只有当前线程可以访问变量,其它线程不可以。...从生产者手中获取数据,并缓存在队列内部,而生产者立即返回;只有当队列缓冲区达到最大值缓存容量时(LinkedBlockingQueue可以通过构造函数指定),才会 阻塞生产者队列,直到消费者从队列消费掉一份数据

    47330

    从源码角度解读Java Set接口底层实现原理

    其中,HashSet基于哈希实现,对于非Null元素具有O(1)插入和查找时间复杂度;而TreeSet基于红黑树实现,对于有序集合操作具有良好性能表现。...当我们向HashSet添加元素时,首先会对元素进行哈希,并通过哈希来确定元素在数组位置。...当然,由于哈希可能会存在多个元素都哈希到同一个位置情况,因此这些元素会被存储同一个位置上,形成一个链表。...查找元素时,先通过哈希定位到链表头部,然后链表中进行搜索,直到找到匹配元素或到达链表末尾。...对于每个节点,其左子树所有元素都比节点元素小,右子树所有元素都比节点元素大。删除时,如果要删除节点有两个子节点,会先在右子树中找到最小元素,然后将该节点元素替换为最小元素。

    31212

    树和二叉树

    ,则这个节点称为其子节点父节点; 子节点:一个节点含有的子树根节点称为节点子节点; 兄弟节点:具有相同父节点节点互称为兄弟节点; 堂兄弟节点:父节点在同一层节点互为堂兄弟; 节点祖先:从根到节点所经分支上所有节点...除了第 d 层外,其它各层节点数目均已达最大值,且第 d 层所有节点从左向右连续地紧密排列,这样二叉树被称为完全二叉树; 满二叉树:所有叶节点都在最底层完全二叉树; 平衡二叉树(AVL 树):当且仅当任何节点两棵子树高度差不大于...序遍历:对于树任意节点来说,先打印左子树,然后打印它本身,最后打印右子树。 后序遍历是指,对于树任意节点来说,先打印左子树,然后打印右子树,最后打印这个节点本身。...二叉查找树要求,任意一个节点,其左子树每个节点,都要小于这个节点,而右子树节点都大于这个节点。 二叉查找树查找 首先,我们看如何在二叉查找树查找一个节点。...为什么需要二叉查找树 第一,哈希数据是无序存储,如果要输出有序数据,需要先进行排序。而对于二叉查找树来说,我们只需要序遍历,就可以 O (n) 时间复杂度内,输出有序数据序列。

    80020

    【动态规划】子序列问题

    ,当 num[j] > num[i] 时,也就是准备下降状态,此时 g[i] 就是从 f[j] + 1 取一个最大值初始化:还是可以把两个 dp 都初始化为 1返回:两个 dp 最大值class...b 所具有的等差数列长度肯定比之前大或者等于,所以只需要找到这个位置 dp 即可,然后 + 1 就是 dp[i] 但是用上面的方法会超时,所以可以考虑做一个优化,通过哈希来把 b 和对应...dp 存入到哈希,这样就可以直接通过线性时间复杂度直接找到 b 对应 dp ,又由于哈希不能存储重复元素特性,后续存储 b 会把之前覆盖掉,之后找到 b 就是距离 a 最近还可以优化是...dp 全部初始化为 2填表顺序:从左到右返回:最后结果只需要在 dp 中找到最大值即可此外,还可以做一个优化,每次都需要在前面的区间内找 a ,可以把原来数组和下标映射到哈希,查询的话直接取就行...,还是通过把和下标映射存储哈希中提升查询效率,由于可能存在多个 a 情况,所以需要用一个数组来存储下标 初始化:由于只有 3 个符合条件子序列才是等差数列,所以可以把所有的 dp 都初始化为

    14610

    Python数据结构与算法笔记(4)

    负载因子,lambda=项数/大小,下面这个例子,为6/11 ? 现在,要搜索一个项时,我们只需使用哈希函数来计算项槽名称,然后检查哈希以查看它是否存在。...需要注意是,跳过大小,必须使得所有槽最终都被访问。否则,一部分将不被使用,为了确保这一点,通过建议大小是素数。 线性探测思想一个变种称为二次探测,代替使用常量跳过。...随着越来越多哈希到相同位置,搜索集合难度增加。 ? 实现map抽象数据类型: 字典是一种关联数据类型,可以在其中存储键值对,键用于查找关联。经常把这个想法称为map。...我们可以使用具有顺序或二分查找列表,但是使用哪个哈希更好,因为查找哈希项可以接近O(1)性能 hash法分析 分析散列表使用最重要信息是负载因子lambda。...每次遍历将下一个最大放在其正确位置。 选择排序 选择排序改进了冒泡排序,每次遍历列表只做一次交换,为了做到这一点,一个选择排序遍历时寻找最大值,并在遍历完成之后,将其放在正确位置。

    1.6K10

    动态守候:滑动窗口与距离诗篇

    1.2 题目分析 在数组中找到子数组,里面的元素内容加起来大于等于7,然后返回这个子数组最小长度 解法一:暴力枚举出所有的子数组和,时间复杂度是n^3 解法二:利用单调性,使用‘同向双指针’来进行优化操作...,以这个字符开头子串那么我们只能枚举到这里了,然后我们将所有的情况都枚举到,然后找到子串长度最大值 最坏情况是我们时间复杂度是n^2级别的,当我们判断时候我们从头看到尾都没有重复,但是我们仍在遍历操作...hash[s[right]]++ 表示将 right 指向字符加入窗口,更新字符哈希出现次数。...hash[s[left]]-- 表示将窗口左边界 left 指向字符移出窗口,减少字符哈希出现次数。...总结哈希工作机制 hash 数组作用是滑动窗口内实时记录每个字符出现次数。每当字符加入窗口时,哈希表相应位置会递增,当字符被移出窗口时,哈希表相应位置会递减。

    5310

    【愚公系列】2023年11月 数据结构(七)-哈希

    具体地,哈希每个元素都有一个唯一键值,键值通过哈希函数映射到一个数组索引位置上。查询、插入、删除数据时,只需通过哈希函数计算出对应索引位置,然后该位置直接访问数据。...扩容过程是将哈希大小增加一倍,并且重新计算所有元素哈希,将它们分配到新哈希。...当插入一个新元素时,先计算关键字哈希然后根据哈希找到对应数组元素,如果元素为空,则将新元素作为元素头结点;如果元素不为空,则遍历链表,查找是否已经存在相同关键字,如果没有,则将新元素添加到链表末尾...查询一个元素时,先计算出元素哈希然后根据哈希找到对应数组元素,然后遍历元素所对应链表,查找是否有相同关键字。...双重散列:当发生冲突时,使用另外一个哈希函数计算出一个新哈希然后根据这个新哈希继续查找哈希下一个单元。

    30311

    C语言】Leetcode 两数之和 (含详细题解)

    每个元素包含两个成员变量 key 和 val,分别表示键和。UT_hash_handle hh 是一个宏,用于表示哈希链表指针。...首先,我们调用 find 函数来查找是否已经存在元素。如果不存在,则创建新元素并将其添加到哈希;如果已经存在元素,则更新其。...函数,我们首先初始化哈希然后遍历整数数组 nums。对于每个元素 nums[i],我们哈希查找是否存在与 target - nums[i] 相等元素。...); // 将新元素添加到哈希 } else { it->val = ival; // 如果已经存在元素,则更新其 } } // 从给定数组中找到两个数和等于给定目标值下标...该函数首先初始化哈希然后遍历整数数组 nums,哈希查找是否存在与当前元素匹配元素,如果找到则返回它们下标,如果没有找到则将当前元素插入到哈希

    24710

    Lua语法讲解

    其设计⽬是为了通过灵活嵌⼊应⽤程序从⽽为应⽤程序提供灵活扩展和定制功能。Lua由标准C编写⽽成,⼏乎在所有操作系统和平台上都可以编译,运⾏。Lua并没有提供强⼤库,这是由它定位决定。...lua 语⾔具有以下特性 ⽀持⾯向过程(procedure-oriented)编程和函数式编程(functional programming); ⾃动内存管理;只提供了⼀种通⽤类型(table),⽤...它可以实现数组,哈希,集合,对象; 语⾔内置模式匹配;闭包(closure);函数也可以看做⼀个;提供多线程(协同进程,并⾮操作系统所⽀持线程)⽀持; 通过闭包和table可以很⽅便地⽀持⾯向对象编程所需要...默认定义变量就是全局变量。如果要使用局部变量,需要local来定义。 如果变量没有初始化:则它为nil。Java null不同。...number 表示双精度类型实浮点数 string 字符串由⼀对双引号或单引号来表示 function 由 C 或 Lua 编写函数 userdata 表示任意存储变量C数据结构 thread

    21960

    揭秘Java瑞士军刀——HashMap源码解析

    extends V> m):这是一个带有Map参数构造方法,它首先设置了默认负载因子,然后调用了putMapEntries方法将传入Map所有键值对放入HashMap。...threshold = Integer.MAX_VALUE; // 将阈值设置为最大值 return oldTab; // 返回旧哈希数组...查找 当我们需要查找一个键对应时,同样会先计算出键hashCode()然后根据找到数组一个位置。...根据给定哈希、键、等信息,找到要移除节点。如果节点存在且满足匹配条件(matchValue为true时),则将节点从链表移除,并返回节点;否则返回null。...具体解释如下: 根据给定哈希、键、等信息,哈希中找到要移除节点。 如果节点存在且满足匹配条件(matchValue为true时),则将节点从链表移除,并返回节点;否则返回null。

    17530

    Java遍历HashMap5种方式

    它使用键(key)哈希码(hash code)来计算存储位置,从而快速定位(value)。当两个不同具有相同哈希码时,会发生哈希冲突。...HashMap通过链表或红黑树来解决哈希冲突,这取决于Java版本和哈希负载因子。 键值对特性 HashMap键和都可以是null。...性能考虑 HashMap性能主要取决于哈希函数质量和键分布。一个好哈希函数可以将键均匀分布哈希,从而减少哈希冲突和提高性能。此外,HashMap初始容量和加载因子也会影响性能。...然后我们使用entrySet()方法和for-each循环来遍历HashMap并打印所有的键和。...然后,我们使用for-each循环来遍历HashMapentrySet。每次迭代,我们通过getKey()和getValue()方法来获取键和,并打印它们。

    18110

    DP:子序列模型

    要返回dp最大值,但由于我们排序过,所以最大值必然出现在dp[n-1]。...: (1)将元素+dp[i]存在哈希 (2)直接在哈希做动态规划 3、初始化 hash[arr[0]]=1 4、填表顺序 从左往右 5、返回 dp表里最大值 class Solution...(2)i位置填完后,将i位置放进哈希 3、初始化 都初始化为2 4、填表顺序 有两种方式(选择方法2) (1)先固定最后一个数,然后枚举倒数第二个数(必须在dp前先将元素与下标的关系绑定再哈希...,到时候时候还得判断b<a<c情况) (2)先固定倒数第二个数,再枚举最后一个数(可以等i位置填完后再将i位置丢进哈希,这样可以保证哈希元素下标必然是小,就可以不需要判断b<a<c...(题需要统计所有的子序列,所以相同元素下标不同情况都要统计,因此我们要将元素绑定一个下标数组) (2)i位置填完后,将i位置放进哈希 3、初始化 都初始化为0 4、填表顺序 先固定倒数第二个数

    9210
    领券