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

Excel实战技巧55: 包含重复列表查找指定数据最后出现数据

)-1)) 公式先比较单元格D2值与单元格区域A2:A10值,如果相同返回TRUE,不相同则返回FALSE,得到一个由TRUE和FALSE组成数组,然后与A2:A10所行号组成数组相乘,...得到一个由行号和0组成数组,MAX函数获取这个数组最大值,也就是与单元格D2值相同数据A2:A10最后一个位置,减去1是因为查找是B2:B10值,是从第2行开始,得到要查找...图2 使用LOOKUP函数 公式如下: =LOOKUP(2,1/($A$2:$A$10=$D$2),$B$2:$B$10) 公式,比较A2:A10与D2值,相等返回TRUE,不相等返回FALSE...组成数组,由于这个数组找不到2,LOOKUP函数在数组中一直查找,直至最后一个比2小最大值,也就是数组最后一个1,返回B2:B10对应值,也就是要查找数据列表中最后值。...图3 使用VBA自定义函数 VBE输入下面的代码: Function LookupLastItem(LookupValue AsString, _ LookupRange As Range,

10.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

一道能做出来就脚踢BAT高难度算法题:元素重复三次数组查找重复一次元素

我们先看题目:给定一个数组,它里面除了一个元素外,其他元素重复了三次,要求空间复杂度为O(1),时间复杂度为O(n)约束下,查找到只重复了一次元素。...看一个具体例子,假设一个重复三次元素值是2,它二进制格式为011,那重复三次就是010,010,010,于是下标为0和1比特位1就出现了3次,假设我们有一种机制,能够某个比特位上检测到该位出现...1有三次就清零,那么所有重复三次元素将会被清除,只剩下重复1次元素。...1次元素相应比特位上1只出现1次因此不会被清零,由此遍历一次后,只有出现1次元素比特位上1保留下来,这样我们就把出现1次元素给抽取出来。...我们设置两个变量towOnes,oneOnes,当某个比特位第一次出现1时,我们把oneOnes对应位置比特位设置为1,当某个比特位第二次出现为1时,把oneOnes对应比特位设置为0,twoOnes

2.1K20

算法刷题-分隔链表、合并两个有序链表、排序数组查找元素第一个和最后一个位置

文章目录 分割链表 合并两个有序链表 排序数组查找元素第一个和最后一个位置 分割链表 给你一个链表头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 节点都出现在...你应当保留 两个分区每个节点初始相对位置。...输入:head = [1,4,3,2,5,2], x = 3 输出:[1,2,2,4,3,5] 示例 2: 输入:head = [2,1], x = 2 输出:[1,2] 提示: 链表节点数目范围...p.next = l1; } else { p.next = l2; } return h.next; } } 排序数组查找元素第一个和最后一个位置...主页:共饮一杯博客汇总‍ 保持热爱,奔赴下一场山海。

1.1K30

最全JavaScript 算法与数据结构

每种算法和数据结构都有自己 README 并提供相关说明以及进一步阅读和 YouTube 视频。 数据结构 数据结构是计算机 组织和存储数 据一种特殊方式, 它可以高效地 访问和修改 数据。...组合 (有/重复) A 洗牌算法 - 随机置换有限序列 A 最长公共子序列 (LCS) A 最长递增子序列 A 最短公共父序列 (SCS) A 背包问题 - "0/1" and "Unbound" ones...B 树深度优先搜索 (DFS) B 图深度优先搜索 (DFS) A 排列 (有/重复) A 组合 (有/重复) 动态编程 - 使用以前找到子解决方案构建解决方案 B 斐波那契数 B 跳跃游戏 B...独特路径 B 雨水收集 - 疏导雨水问题 A 莱温斯坦距离 - 两个序列之间最小编辑距离 A 最长公共子序列 (LCS) A 最长公共子串 A 最长递增子序列 A 最短公共子序列 A 0-1背包问题...以下是一些最常用 大O标记法 列表以及它们与不同大小输入数据性能比较。

1.4K10

泛型和元编程模型:Java, Go, Rust, Swift, D等

程序设计时候,我们通常希望使用同样数据结构或算法,就可以处理许多不同类型元素,比如通用List或只需要实现compare函数排序算法。...根据语言不同,我们经常需要在每次读写数据结构时候,进行类型转换。 很难阻止使用者将不同类型元素放入数据结构,这可能会导致运行时异常。...let first (head :: tail) = head(* inferred type: 'a list -> 'a *) 推断类型会推断出 "从类型为'a'元素列表到类型为'a'元素函数...这样一来,Swift就可以没有单态化情况下实现泛型,也不需要把所有的类型都使用统一表达。虽然仍然存在所有动态查找成本,然而也节省了分配内存、内存和缓存不连贯成本。...此功能还解释了Swift为何以允许结构体添加和重新排列字段方式实现ABI稳定性,尽管它们出于性能原因提供@frozen属性以选择退出动态查找

3K30

Simple is better than complex——python4大数据结构常用接口简介

01 列表 列表可能是使用python中最为常用数据结构了,它类似于其他语言中数组,但又可以存储多种数据类型,同时还可以自适应更改列表长度。...,不可缺省 clear:清空整个列表,相当于为列表赋值为空列表 index:查找目标元素列表索引,要求该元素列表存在,否则报错 count:计算目标元素在给定列表个数,当目标元素不存在时返回...,它最大特性是各元素仅保留1次,底层也是应用了哈希函数,所以集合查找元素一般也可实现O(1)复杂度,同时集合嵌套元素也要求是不可变类型(可哈希对象)。...,返回值 isdisjoint:判断两个集合是否存在公共元素,不存在公共元素时结果为True,否则为False union:接受两个集合作为参数,返回并集新集合作为返回值。...inplace操作 symmetric_difference:对称差集,类似于补集,返回两个集合除公共元素意外并集,即A有B或AB有的元素 symmetric_difference_update:

82210

Java集合详解(List、Map、Set)

比如上面第一次按照姓首字母进行哈希,如果产生冲突可以按照姓字母首字母第二位进行哈希,再冲突,第三位,直到不冲突为止; 拉链法 拉链法: HashMap 就是使用拉链法 来解决hash冲突问题...优点: 拉链法处理冲突简单,且堆积现象,即非同义词决不会发生冲突,因此平均查找长度较短; 由于拉链法各链表上结点空间是动态申请,故它更适合于造表前无法确定表长情况; 开放定址法为减少冲突,...而对开放地址法构造列表,删除结点不能简单地将被删结点空间置为空,否则将截断它之后填人散列表同义词结点查找路径。这是因为各种开放地址法,空地址单元(即开放地址)都是查找失败条件。...缺点: 指针需要额外空间,故当结点规模较小时,开放定址法较为节省空间,而若将节省指针空间用来扩大散列表规模,可使装填因子变小,这又减少了开放定址法冲突,从而提高平均查找速度。...但是当位于一个数组元素较多,即hash值相等元素较多时,通过key值依次查找效率较低。

52610

海量数据处理

拉链法优势与缺点 与开放定址法相比,拉链法有如下几个优点: 拉链法处理冲突简单,且堆积现象,即非同义词决不会发生冲突,因此平均查找长度较短; 由于拉链法各链表上结点空间是动态申请,故它更适合于造表前无法确定表长情况...而对开放地址法构造列表,删除结点不能简单地将被删结 点空间置为空,否则将截断它之后填人散列表同义词结点查找路径。这是因为各种开放地址法,空地址单元(即开放地址)都是查找失败条件。...hash数据结构数据对外是杂乱,因此其具体存储位置以及各个存储元素位置之间相互关系是无法得知,但是却可以常数时间里判断元素位置及存在与否。...2、Bit-map法 位图法基本原理是使用位数组来表示某些元素是否存在,如从8位电话查找重复号码。   ...常常会遇到判断集合是否存在重复问题,数据量比较小时候,对时间复杂度要求不高,担当集合数据量比较大时候,则希望能够少进行几次扫描,此时如果还采用双重循环的话,效率很低,此时使用位图法很合适,首先找到最大元素

2.1K140

拿下 BAT+华为校招 200 题 LeetCode 高频题库

逻辑运算) 链表 题目 237-删除链表节点(基本操作)-1 203-移除链表元素(基本操作)-1 offer18-删除链表节点(基本操作)-1 83-删除排序链表重复元素(基本操作)-1...) offer52/160-两个链表第一个公共节点/相交链表(双指针) 148-排序链表(排序、链表) 146-LRU 缓存机制(设计) 栈、队列 题目 225-用队列实现栈(两个队列,一个队列可.../ 重复字符最长子串(哈希表、滑动窗口) 187-重复DNA序列(哈希表) 567-字符串排列(哈希表、滑动窗口) offer58-左旋转字符串 20-有效括号(栈) 125-验证回文串.../solution/hua-jie-suan-fa-35-sou-suo-cha-ru-wei-zhi-by-guanp/) offer53/34-排序数组查找数字/排序数组查找元素第一个和最后一个位置...) 454-四数相加 II(哈希表,与两数相加那些题有点类似) 560-和为K子数组(两层循环;先算好连加情况,之后使用双指针遍历;与“两数之和”类似的方式) 217-存在重复元素(哈希表) 763

2.4K30

《大话数据结构》(二)

如果图中任意两个顶点之间边都是有向边,则该图称为有向图(Directed grpahs) *向边用小括号表示,有向边用尖括号表示 图中,若不存在顶点到其自身边,且同一条边不重复出现,则称这样图为简单图...向图中,如果任意两个顶点之间都存在边,则称该图为向完全图。...操作有: 查询某个“特定”数据元素是否查找 检索某个“特定”数据元素和各种属性 5.动态查找表(Dynamic Search Table):查找过程同时插入查找不存在数据元素,或者从查找删除已经存在某个数据元素...不断重复上述过程,直到查找成功,或所有查找区域记录,查找失败为止。...4.公共溢出区法:为所有冲突关键字建立一个公共溢出区来存放 K.散列表查找实现 1.散列查找平均查找长度取决于: 散列防水涂料旭否均匀 处理冲突方法 散列表装填因子 https://github.com

94831

Python常见基础知识点汇总(建议时常翻阅)

1.什么是集合 集合是一系列无序、不重复元素组合体,集合每个元素可为不同类型。因此,集合可被看成数学意义上无序、重复元素集合。 2.集合变量定义 集合通过“{}”加以表示。...4.集合特点 集合元素是无序、不可重复,即不允许集合对象中出现两个及以上相同元素。 3.字典使用 字典是通过键(key)作为索引来访问和操作值(value)。...4.字典特点 (1)字典第一个特点是查找速度快,而且查找速度与元素个数无关;而列表查找速度是随着元素增加而逐渐下降。 (2)字典第二个特点是存储键值对是无序。...5)可重复性 · 字符串元素是可重复。 · 列表元素是可重复。 · 元组元素是可重复。 · 字典元素,键不可重复,值可重复。 · 集合元素是不可重复。...*运算符 *既是乘法运算符,也是重复运算符。对于Python字符串、列表、元组等对象,均可使用*进行重复运算,语法为:可重复对象*n,其中n为重复次数。

82141

泛型算法-1

泛型算法-1 泛型算法实现了一些经典算法公共接口,如排序和搜索;称它们是“泛型”,是因为它们可以用于不同类型元素和多种容器类型(不仅包括标准库类型,还包括内置数组类型),以及其它类型序列。...** 大多数算法都定义头文件algorithm ** 算法永远不会执行容器操作 /*算法find*/ /* - find将范围内中所有元素与给定值进行比较,返回指向第一个等于给定值迭代器 -...如果范围内匹配元素,则find返回第二个参数来表示搜索失败 */ void find_value() { //find函数返回值类型是迭代器类型 //vector查找值 int...因此元素类型必须能转换成谓词参数类型 标准库算法所使用谓词分为两类: 1.一元谓词:它们只接受一个参数 2.二元谓词:它们接受两个参数 //定制操作,按照长度重新排vector bool isShorter...lambda不能使用所在函数变量。一个lambda只有捕获变量后才能使用它们 [names] names是一个逗号分隔名字列表,这些名字都是lambda所在函数局部变量。

66610

Java基础19:Java集合框架梳理

用户可以对列表每个元素插入位置进行精确地控制,同时可以根据元素整数索引(列表位置)访问元素,并搜索列表元素。...由于实现方式不同,LinkedList不能随机访问,它所有的操作都是要按照双重链表需要执行。列表索引操作将从开头或结尾遍历列表(从靠近指定索引一端)。...链表容量限制,但双向链表本身使用了更多空间,每插入一个元素都要构造一个额外Node对象,也需要额外链表指针操作。...JDK8里,新增默认为8阈值,当一个桶里Entry超过閥值,就不以单向链表而以红黑树来存放以加快Key查找速度。 当然,最好还是桶里只有一个元素,不用去比较。...有一把公共锁与notFull、notEmpty两个Condition管理队列满或空时阻塞状态。

56100

【Java基本功】一文总结Java集合类知识点

用户可以对列表每个元素插入位置进行精确地控制,同时可以根据元素整数索引(列表位置)访问元素,并搜索列表元素。...由于实现方式不同,LinkedList不能随机访问,它所有的操作都是要按照双重链表需要执行。列表索引操作将从开头或结尾遍历列表(从靠近指定索引一端)。...链表容量限制,但双向链表本身使用了更多空间,每插入一个元素都要构造一个额外Node对象,也需要额外链表指针操作。...JDK8里,新增默认为8阈值,当一个桶里Entry超过閥值,就不以单向链表而以红黑树来存放以加快Key查找速度。 当然,最好还是桶里只有一个元素,不用去比较。...有一把公共锁与notFull、notEmpty两个Condition管理队列满或空时阻塞状态。

47030

java基础加强_补充笔记

NullPointerException Java规范指出:特定基本类型一定会被装箱成相同包装类型。这些对象会被高速缓存以重复使用,并且会被当做一般对象使用。...即:一个方法参数列表,只能有一个可变参数,且必须放在最后。 一个方法参数列表,不能使用多个可变参数。 语法:参数(数据类型 ......常用方法: name() 返回当前对象名称 ordinal() 返回当前对象索引 values() 返回枚举类所有对象,此方法虽然JDK文档查找不到...示例代码: clazz.getConstructor(); // 得到公共构造函数 clazz.newInstance(); // 创建此 Class 对象所表示一个新实例...clazz.getConstructor(String.class, int.class); // 得到含有两个参数公共构造函数 clazz.newInstance("tom", "

56220

《大话数据结构》总结第一章 绪论第二章 算法第三章 线性表第四章 栈和队列第五章 字符串第六章 树第七章 图第八章 查找第九章 排序

向图中,如果任意两个顶点之间都存在边,则称该图为向完全图。含有n个顶点向完全图有n(n-1)/2条边。 在有向图中,如果任意两个顶点之间都存在方向互为相反两条弧,则称该图为有向完全图。...除了第一个顶点和最后一个顶点之外,其余顶点不重复出现回路,称为简单回路或简单环。 向图G,如果从顶点v到顶点v'有路径,则称v和v'是连通。...动态查找表(Dynamic Search Table):查找过程同时插入查找不存在数据元素,或者从查找删除已经存在某个数据元素。显然动态查找操作就是两个:(1)查找时插入数据元素。...不断重复上述过程,直到查找成功,或所有查找区域记录,查找失败为止。时间复杂度来是O(logn)。...若选定列表长度为m,则可将散列表定义为一个由m个头指针组成指针数组T[0..m-1]。 公共溢出区法:为所有冲突单列出一个区域 散列查找平均查找长度取决于哪些因素?

1.3K51
领券