By 张旭 CaesarChang 合作 : root121toor@gmail.com 关注我 带你看更多好的技术知识和面试题 给定一个链表,判断链表中是否有环。...为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。...fast=fast.next.next; slow=slow.next; } return false; } } 使用快慢指针
让我们看一下Java 8的Stream API如何改变了传统列表对象的比较方式。列表这种数据结构应用非常广泛,在开发软件的许多业务场景中,将列表中元素内容与某些特定条件进行比较是一个常见的用例。...这种比较大致有下面几种: 将列表中的每个元素与某个特定条件进行比较。例如,您有一个Employee对象列表,您需要检查所有员工是否都在18岁以上。...用一个列表中的一个或多个元素去匹配另一个列表的元素。 列表的所有元素是否都存在于另一个列表中。 现在,在java7中利用相对少的代码行来非常容易地写出这些使用实例。...下面是一个示例,我们正在比较Java 7中的两个列表,并检查列表1中的任何元素是否存在于列表2中。 ? 示例代码 现在我们看看Java 8中如何开发上面的用例。...什么是流的上下文中(Stream Context)的“匹配”? 给定一个对象流,我们需要检查给定流中的对象是否匹配某些特定的标准。
检查谓词是否至少匹配一个元素 anyMatch方法可以回答“流中是否有一个元素能匹配给定的谓词”。...; } anyMatch方法返回一个boolean,因此是一个终端操作。 检查谓词是否匹配所有元素 allMatch方法的工作原理和anyMatch类似,但它会看看流中的元素是否都能匹配给定的谓词。...它可以确保流中没有任何元素与给定的谓词匹配。...元素求和 在我们研究如何使用reduce方法之前,先来看看如何使用for-each循环来对数字列表中的元素求和。 numbers中的每个元素都用加法运算符反复迭代来得到结果。...通过反复使用加法,你把一个数字列表归约成了一个数字。
flatMap 我们已经看到如何使用 map 方法返回列表中每个单词的长度了。...---- 检查谓词中是否至少匹配一个元素 anyMatch anyMatch 方法可以回答“流中是否有一个元素能匹配给定的谓词”。...boolean ,因此是一个终端操作. ---- 检查谓词中是否匹配所有元素 allMatch allMatch 方法的工作原理和 anyMatch 类似,但它会看看流中的元素是否都能匹配给定的谓词。...它可以确保流中没有任何元素与给定的谓词匹配。...例如,给定一个数字列表, 找出第一个平方能被3整除的数 /** * 需求: 给定一个数字列表, 找出第一个平方能被3整除的数 */ public static
因为一个对象的每个字段与另一个对象中的字段进行比较。...下面是一个断言示例,它检查提供的列表是否为空,包含“1”元素,不包含任何空值并包含元素序列“2”,“3”: assertThat(list) .isNotEmpty() .contains("1...下面是一个断言示例,它检查提供的字符是否不是 'a',在 Unicode 表中,是否大于 'b' 并且是小写的: assertThat(someCharacter) .isNotEqualTo('a.../Integer断言 数字断言都是关于比较给定偏移量内或没有给定偏移量的数值。...你可以看到断言的示例,该断言检查给定的Map是否为空,包含key “2”,不包含数字键“10”并包含条目:key:2,value:“a”: assertThat(map) .isNotEmpty()
因为一个对象的每个字段与另一个对象中的字段进行比较。...下面是一个断言示例,它检查提供的列表是否为空,包含“1”元素,不包含任何空值并包含元素序列“2”,“3”: assertThat(list) .isNotEmpty() .contains("1...下面是一个断言示例,它检查提供的字符是否不是 ‘a’,在 Unicode 表中,是否大于 ‘b’ 并且是小写的: assertThat(someCharacter) .isNotEqualTo('a...断言 数字断言都是关于比较给定偏移量内或没有给定偏移量的数值。...你可以看到断言的示例,该断言检查给定的Map是否为空,包含key “2”,不包含数字键“10”并包含条目:key:2,value:“a”: assertThat(map) .isNotEmpty()
检测这种条件在基因组序列研究中很重要。编写一个程序,检查两个给定的字符串 s 和 t 是否彼此的循环移位。...编写一个程序,给定一个由 n 个不同 int 值组成的双峰数组,确定给定的整数是否在数组中。在最坏情况下,你的程序应该使用 ~ 3 log n 次比较。...给定一个包含 n 个不同整数的排序数组,该数组已经旋转了未知数量的位置,例如,15 36 1 7 12 13 14,请编写一个程序 RotatedSortedArray.java 来确定给定的整数是否在列表中...无视排序网络对于在硬件中实现排序算法很有用。如何检查你的程序对所有输入都有效? 答案: Sort4.java 使用 5 个比较交换对 4 个项目进行排序。...Bogosort 是一种随机算法,通过将 N 张卡片抛起来,收集它们,并检查它们是否以递增顺序排列。如果没有,重复直到它们排好序。使用第 1.4 节中的洗牌算法实现 bogosort。
要设置的Java数组Java数组到列表Java加入两个给定的列表Java列表到数组Java将文本附加到现有文件Java将字符串转换为日期 使用递归的Java中的Fibonacci系列程序Java Palindrome...Java array of Hash tablesJava查找数组中的数字 Java协变返回类型Java重载主方法Java将阵列更改为列表Java重载Java方法隐藏Java查找交集 另一个数组中的...String.valueOf()Java测试字符串是否包含特定单词Java字符串大小写更改示例代码Java确定String是否包含另一个StringJava检查字符串是否包含数字Java字符串全部大写或小写...处理异常使用多个Catch块的Java示例链式异常Java示例处理链式异常带有重载方法的Java示例异常Java示例处理带有重载方法的异常Java示例处理已检查的异常 Java示例在抛出异常时传递参数...示例用户定义的异常Java示例数字总和Java示例前n个自然数Java示例链接列表的最后一个元素Java示例从LinkedList获取第一个和最后一个元素
如何表示和处理数据 Clojure是一种动态类型语言,这意味着你在程序中永远不需要明确定义符号、函数、或者参数的数据类型。但是,所有的值仍然有一个类型。...然而,在高性能应用中要注意,当操作的数据大小超过Java Long类型时,也就是数字超过9,223,372,036,854,775,807时,你可能会感到运行缓慢。...总的来说,对于很多应用来讲向量更好,因为跟列表相比向量毫无劣势而且更快。 向量在Clojure程序中的字面表示是使用方括号。...关键字、字符串和数字都经常被用作映射的键。 与向量类似,映射是它们的键的函数(不过如果给定的键不存在,它们不会抛出异常)。要得到一个特定键对应的值,只要使用该映射最为函数,并将键作为参数传递给它。...它返回一个新的映射,该映射由参数里的所有映射的键和值所组成。若一个键在多个映射里出现,那么最后的值是参数里给定的函数作用于所有这些冲突键的值的返回值。
在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 //。...in:如果字符串中包含给定的字符,返回True not in:如果字符串中不包含给定的字符,返回True %:格式字符串 r/R:原始字符串,原始字符串除在字符串的第一个引号前加上字母 r(可以大小写...序列中的每个元素都分配一个数字作为索引,第一个索引是0,第二个索引是1,依此类推。 Python常见的序列是字符串、列表和元组。 序列都可以进行的操作包括索引,切片,加,乘,检查成员。...5、列表运算符 +:组合,将两个列表进行组合后生成新的列表 *:重复,将列表的元素重复多次,生成新的列表 x in list:判断x是否在列表中,如果是返回True,否则返回False。...list.append(obj) 在列表末尾添加新的对象 list.count(obj) 统计某个元素在列表内出现的次数 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表
下面是一些经常问到和数组相关的面试题,你可以拿来练习: 1、在一个给定的从1到100的整型数组中,如何快速找到缺失的数字? 2、如何找到一个给定的整型数组中的重复数字?...3、在一个未排序的整型数组中,如何找到最大和最小的数字? 4、在一个整型数组中,如何找到一个所有成对的数字,满足它们的和等于一个给定的数字?...5、如果一个数组包含多个重复元素,如何找到这些重复的数字? 6、用 Java 实现从一个给定数组中删除重复元素? 7、如何利用快速排序对一个整型数组进行排序? 8、如何从一个数组中删除重复元素?...10、在不使用任何库方法的情况下如何反转给定语句中的单词? 11、如何判断两个字符串是否互为旋转? 12、如何判断给定字符串是否是回文?...8、在不使用第三个变量的前提下如何交换两个数? 9、如何检查两个矩形是否重叠? 10、如何设计一个自动售货机? 以上这些是数据结构和算法之外的一些最常见的面试问题,可以帮助你在面试中做得很好。
redis.persist("foo"); //EXISTS 检查给定key是否存在。...//HLEN key 返回哈希表key中域的数量。 //HEXISTS key field查看哈希表key中,给定域field是否存在。...下标(index)参数start和stop都以0为底,也就是说,以0表示列表的第一个元素,以1表示列表的第二个元素,以此类推。...你也可以使用负数下标,以-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推。...//LREM key count value根据参数count的值,移除列表中与参数value相等的元素。
DAG 中的哈密顿路径。 给定一个 DAG,设计一个线性时间算法来确定是否存在一个访问每个顶点恰好一次的有向路径。 解决方案: 计算一个拓扑排序,并检查拓扑顺序中每对连续顶点之间是否有边。...展示如何确定一个跳棋在当前移动中是否可以变成国王。(使用 BFS 或 DFS。)展示如何确定黑方是否有获胜的着法。(找到一个有向欧拉路径。) 优先附着模型。 网络具有无标度特性,并遵循幂律。...简而言之,我们不需要在优先队列中保留所有从 w 到树顶点的边 - 我们只需要跟踪最小权重的边,并检查是否添加 v 到树中需要我们更新该最小值(因为边 v-w 的权重更低),我们可以在处理 s 邻接列表中的每条边时做到这一点...特殊符号.匹配任何一个字符。您的程序应将模式作为命令行参数读取,并从标准输入读取单词列表(由空格分隔)。 通配符模式匹配器。 重复上一个练习,但这次使用 Java 内置的正则表达式。...编码词 0 是 01 的前缀,但悬挂后缀 1 已经在列表中;编码词 1 是 11 的前缀,但悬挂后缀 1 已经在列表中。没有其他悬挂后缀,因此得出该集合是唯一可解码的结论。
while循环只能在已知循环次数的情况下使用。如果循环体中没有更新循环变量的语句,那么while循环将会无限循环。因此,每个while循环都应该有一个明确的退出点。...首先,在main方法中定义了一个名为sumNumbers的静态方法,该方法接受一个整数n作为参数,并返回一个整数类型的值。 ...我们分别测试了传递到方法中的不同参数,并验证方法返回的结果是否是预期的值。...我们分别测试了传递到方法中的不同参数,并验证方法返回的结果是否是预期的值。...同时,我们还需要确保在循环体内更新循环变量的值,以控制循环的执行。在使用while循环时,我们可以根据不同的需求写出不同的代码逻辑,例如计算数字的和、查找列表中的元素等。
有的时候不是你不会,而是触及到你的工作边缘,并没有更多的使用,可是面试却需要了解。...在 Python 中怎样定义封装? 你如何在 Python 中进行数据抽象? python 是否使用了访问说明符? 如何在 Python 中创建一个空类? object()有什么作用?...编写一个程序,用Python生成Fibonacci系列。 用 Python 编写程序来检查数字是否为素数。 用 Python 编写程序来检查序列是否是回文序列。...检查给定数字n是否为2或0的幂 计算将A转换为B所需的位数 在重复元素数组中查找两个非重复元素 找到具有相同设置位数的下一个较大和下一个较小的数字 95.给定n个项目的重量和值,将这些物品放入容量为W的背包中...给定成本矩阵成本[] []和成本[] []中的位置(m,n), 将一个集合划分为两个子集,使得子集和的差异最小 给定一组非负整数和一个值和,确定是否存在给定集合的子集,其总和等于给定总和。
Java 8 中的 Stream API 实现了一种对数字列表中的每个元素进行乘以 2 的操作,并将操作后的结果保存到新的列表中。...Java 8 中的 Stream API 实现了一种将数字列表转换成字节-整数键值对的方式。...reduce() 方法接收一个 BinaryOperator 函数作为参数,用于指定如何处理相邻的两个元素并返回一个新的结果值。...names,使用流式操作检查其中是否有任意一个元素以字母 “B” 开头,并将检查结果(布尔值)打印输出。...names,使用流式操作检查其中是否没有任意一个元素以字母 “E” 开头,并将检查结果(布尔值)打印输出。
[unified_param_check_header.jpg] 前言 在日常的开发中,参数校验是非常重要的一个环节,严格参数校验会减少很多出bug的概率,增加接口的安全性。...也会减少对接时不必要的沟通。比如说:在对接的时候前端动不动就甩个截图过来说接口有问题,你检查了半天发现前端传递的参数有问题。针对以上:今天给大家分享一下SpringBoot如何实现统一参数校验。...@Future 被注解的元素必须是日期,检查给定的日期是否比现在晚 @Max(value...(java.util.Date/Calendar) 被注解的元素必须过去的日期,检查标注对象中的值表示的日期比当前早 @Pattern(regex=, flag=)...被注解的元素必须符合正则表达式,检查该字符串是否能够在match指定的情况下被regex定义的正则表达式匹配 @Size(min=, max=)
你想到的第一个方法可能是使用循环,然后访问列表中的所有元素,然后一个接一个地更改元素的数据类型。 这个方法是老派的,在Python中我们有一个映射函数,可以为我们做这些工作。...我们使用列表理解来运行一个从1到20的循环,然后在循环的每次迭代中,我们检查数字是否能被3或5整除。...或者使用max()内置函数。 ▍20、线性代数 有时候我们需要将列表中的元素缩放2到5倍。下面的代码解释了如何做到这一点。...在Python中,可以使用zip函数在一行代码中置换一个矩阵。...Java is Java ▍24、模拟抛硬币 这可能不是那么重要,但当你需要从一组给定的选择中生成一些随机选择时,它会非常有用。
领取专属 10元无门槛券
手把手带您无忧上云