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

VBA调用外部对象01:字典Dictionary(统计数据出现的次数)

前面说过了字典去除重复的使用方法,既然字典可以去除重复,那就可以统计数据出现的次数,现在我们来说说如何利用字典来做到这个。...前面去除重复我们是直接更新Key的Item属性,利用的是字典不会保存重复Key的特点。 我们当时并没有特别注意Item的值,是直接使用了数据所在的行号,而且没有使用到这个Item的值。...统计数据出现的次数就是要使用到字典的Item值。...要统计数据出现的次数,因为字典是不会有重复的Key的,我们直接把Item的值加1就行了,这个时候是有2种情况: 不存在的Key:这个时候Item也不存在,也就是vbEmpty,CLng转换vbEmpty...的Item的值为0,所以+1正好是第一次出现 存在的Key:这个时候就好理解了,首先会取出这个Key的Item值,也就是前面已经出现过的次数,然后再+1,再更新这个Key的Item 所以直接更新Item

3.1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    出现次数最多的数

    问题描述 试题编号: 201312-1 试题名称: 出现次数最多的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定n个正整数,找出它们中出现次数最多的数...如果这样的数有多个,请输出其中最小的一个。 输入格式   输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。   ...输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。 输出格式   输出这n个次数中出现次数最多的数。...如果这样的数有多个,输出其中最小的一个。...样例输入 6 10 1 10 20 30 20 样例输出 10 package geekfly.test; import java.util.Scanner; public class 出现次数最多的数

    41940

    VBA分段统计数字的次数

    二分法一次就能去掉一半的数据量,查找是非常高效的。100个数字,最多7次就可以找到所需要的数据,是以2为底数,计算数据个数的对数,1亿的数据量的话,最多是27次能找到需要的数据。...当然它有一个重要的前提,数据源必须是排序的。...但是,既然函数能够返回年龄段的下标,其实我们直接用数组就可以来统计出现的次数了: Enum RetCode ErrRT = -1 SuccRT = 1 End Enum Enum Pos...技巧: 这个问题其实还能有一个很好的技巧,我们观察需要统计的数据,很明显,数据是比较小的,不会超过100,而且又是数字,我们先记录1-100的数字对应的年龄段的下标,再判断年龄属于哪个区间段的时候,直接读取数组就可以了...,你会非常明显的感觉到这个技巧带来的速度提升。

    1.6K10

    Pandas数据处理4、DataFrame记录重复值出现的次数(是总数不是每个值的数量)

    Pandas数据处理4、DataFrame记录重复值出现的次数(是总数不是每个值的数量) ---- 目录 Pandas数据处理4、DataFrame记录重复值出现的次数(是总数不是每个值的数量) 前言...环境 基础函数的使用 DataFrame记录每个值出现的次数 重复值的数量 重复值 打印重复的值 总结 ---- 前言         这个女娃娃是否有一种初恋的感觉呢,但是她很明显不是一个真正意义存在的图片...Pandas数据处理——渐进式学习1、Pandas入门基础 Pandas数据处理——渐进式学习、DataFrame(函数检索-请使用Ctrl+F搜索) ---- DataFrame记录每个值出现的次数...语法 DataFrame.duplicated(subset=None,keep='first') 参数 subset:判断是否是重复数据时考虑的列 keep:保留第一次出现的重复数据还是保留最后一次出现的...:", count) 我们看了共计有5个李诗诗,因为第一个没有计数,从第二个开始计数故而输出结果是:4 重复值 import pandas as pd import numpy as np df =

    2.4K30

    统计文件中出现的单词次数

    kevin.txt the world kevin is the is world grace the kevin art the kevin the is kevin 统计kevin.txt文件中出现的单词次数...该操作块是在文件输入之前执行的,也就是不需要输入任何文件数据,也能执行该模块。 BEGIN模块常用于设置修改内置变量如(OFS,RS,FS等),为用户自定义的变量赋初始值或者打印标题信息等。...找到指定单词,自定义变量count自增,最后输出语句和count值 sort: 把各行按首字母排列顺序重新排列起来 sort -nr: 每行都以数字开头,按数字从达到小,排列各行 uniq -c: 统计各行出现的次数...利用管道组成的一条命令) 写一个shell脚本,查找kevin.txt文本中n个出现频率最高的单词,输出结果需要显示单词出现的次数,并按照次数从大到小排序。...分为以下几步: 1)将文本文件以一行一个单词的形式显示出来; 2)将单词中的大写字母转化成小写字母,即Word和word认为一个单词; 3)对单词进行排序; 4)对排序好的单词列表统计每个单词出现的次数

    3.8K111

    【CCF】出现次数最多的数

    : 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定n个正整数,找出它们中出现次数最多的数。...输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。 输出格式   输出这n个次数中出现次数最多的数。...ans用来存放出现次数最多的正整数,max用来记录出现最多的次数,for-each循环遍历map,若某个数出现次数大于max,更新出现最多的次数max和出现最多次的正整数ans。...,value是其在数组中出现的次数 int n; cin >> n; //n个正整数 for (int i = 0; i 出现的次数...,max用来记录出现最多的次数 for(auto it:m) //for-each循环遍历map { if(it.second > max) //若某个数出现次数大于

    94610

    算法训练 出现次数最多的整数

    算法训练 出现次数最多的整数   时间限制:1.0s   内存限制:512.0MB 问题描述   编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数...N也是由用户输入的,最多不会超过20。...然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。   ...输出格式:输出只有一行,即出现次数最多的那个元素值。...是0,不输出 第七个测试点输入的是负数,不输出 这两个测试点每个10分,错了就只能80分了 输入的整数是有序的,这个就比较好办,如果是无序的,好像就只能用数组装次数了,扫一遍就比较麻烦 import

    30110

    整数中1出现的次数

    题目 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?...ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。 方法一: 有些人不是很聪明,但是总能找到自己的方法解决问题,我很佩服!...如果要计算百位上1出现的次数,它要受到3方面的影响:百位上的数字,百位以下(低位)的数字,百位以上(高位)的数字。 ① 如果百位上数字为0,百位上可能出现1的次数由更高位决定。...② 如果百位上数字为1,百位上可能出现1的次数不仅受更高位影响还受低位影响。...//如果为1,出现1的次数由高位和低位决定,高位*当前位+低位+1 else if(current == 1) count += before *

    67420

    整数中1出现的次数(从1到n整数中1出现的次数)

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。...ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。...如果要计算百位上1出现的次数,它要受到3方面的影响:百位上的数字,百位以下(低位)的数字,百位以上(高位)的数字。 ① 如果百位上数字为0,百位上可能出现1的次数由更高位决定。...② 如果百位上数字为1,百位上可能出现1的次数不仅受更高位影响还受低位影响。...// 如果为1, 出现1的次数由高位和低位决定,高位*当前位+低位+1 res += before * i + after + 1; }else{

    1K20

    独一无二的出现次数

    独一无二的出现次数 给你一个整数数组arr,请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的,就返回true;否则返回false。...示例 输入:arr = [1,2,2,1,1,3] 输出:true 解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。...Object.values(hashTable); return keys.length === [...new Set(values)].length; }; 思路 使用哈希表记录每个数字出现的次数...,之后使用Set处理出现的次数,然后对比哈希表的长度即可,首先定义一个哈希表,在此处是使用Js的普通对象的形式,此处只是为了借助其结构所以不需要原型指向,另外在Js中提供了Map对象作为键值对哈希表的解决方案...,之后遍历数组,如果未定义,那么就将哈希表的此键值的值设置为1,如果键值在哈希表中定义,那么就将其值加1,之后获取对象中所有的键数组,以及所有的值数组,之后将值数组作为参数传入Set对象去重,之后用Spread

    62831

    数字在有序数组中出现的次数

    题目描述 Input: nums = 1, 2, 3, 3, 3, 3, 4, 6 K = 3 Output: 4 解题思路 只要能找出给定的数字 k 在有序数组第一个位置和最后一个位置,就能知道该数字出现的次数...先考虑如何实现寻找数字在有序数组的第一个位置。正常的二分查找如下,在查找到给定元素 k 之后,立即返回当前索引下标。...0 : last - first; } 需要注意以上实现的查找第一个位置的 binarySearch 方法,h 的初始值为 nums.length,而不是 nums.length - 1。...这是因为 binarySearch 只会返回 [0, nums.length - 1] 范围的值,对于 binarySearch([2,2], 3) ,我们希望返回 3 插入 nums 中的位置,也就是数组最后一个位置再往后一个位置...所以我们需要将 h 取值为 nums.length,从而使得 binarySearch 返回的区间更大,能够覆盖 k 大于 nums 最后一个元素的情况。

    66120

    整数中1出现的次数(从1到n整数中1出现的次数)_31

    我们从个位到最高位 依次计算每个位置出现1的次数: 1当前位的数字等于0时,例如n=21034,在百位上的数字cur=0,百位上是1的情况有:00100~00199,01100~01199,……,20100...一共有21*100种情况,即high*100; 2)当前位的数字等于1时,例如n=21034,在千位上的数字cur=1,千位上是1的情况有:01000~01999,11000~11999,21000~21034...3)当前位的数字大于1时,例如n=21034,在十位上的数字cur=3,十位上是1的情况有:00010~00019,00110~00119,……,21010~21019。...的链接网址(包括求1~n的所有整数中2,3,4,5,6,7,8,9出现的所有次数) 通过使用一个 位置乘子m 遍历数字的位置, m 分别为1,10,100,1000…etc....注意:只有n的第m位为1时需要计算后缀,后缀计算为 (n/m%10==1)*(b+1),另外a+8的巧妙之处在于当a的最后一位(当前分析位)为0或1时,加8不产生进位,这是为需要单独算的特殊情况做准备,

    97010
    领券