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

在Scheme中查找列表的最大值和最小值

在 Scheme 中查找列表的最大值和最小值,您可以通过以下方式实现:

  1. 使用 maxmin 函数查找列表的最大值和最小值
代码语言:scheme
复制
(max (list x y z) (min (list x y z)))
  1. 使用 carcdr 函数遍历列表以查找最大值和最小值
代码语言:scheme
复制
(define (find-max-min list)
  (if (null? list)
      'error
      (let ((max-value (car list))
            (min-value (car (cdr list))))
        (if (not (null? (cdr list)))
            (find-max-min (cdr list))
            (set! max-value (cdr list))
            (set! min-value (cdr (cdr list))))
        (if (not (null? max-value))
            (set! min-value (min min-value max-value))
            (set! min-value max-value))
        (list min-value max-value))))
  1. 使用 for 循环遍历列表以查找最大值和最小值
代码语言:scheme
复制
(define (find-max-min list)
  (if (null? list)
      'error
      (let ((max-value (list (car list))))
        (if (not (null? (cdr list)))
            (find-max-min (cdr list))
            (set! max-value (cdr list))))
        (if (not (null? max-value))
            (set! max-value (max (car max-value) (car (cdr max-value))))
            (set! max-value (car list)))
        (list max-value (car list))))

以上三种方法都可以在 Scheme 中查找列表的最大值和最小值。第一种方法使用 maxmin 函数,第二种方法使用 carcdr 函数,第三种方法使用 for 循环。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel公式技巧54: 多个工作表查找最大值最小值

学习Excel技术,关注微信公众号: excelperfect 要在Excel工作表获取最大值最小值,我们马上就会想到使用MAX/MIN函数。...例如,下图1所示工作表,使用公式: =MAX(A1:D4) 得到最大值18。 使用公式: =MIN(A1:D4) 得到最小值2。 ?...图1 然而,当遇到要在多个工作表查找最大值最小值时,该怎么做呢?例如,示例工作簿中有3个工作表:Sheet1、Sheet2Sheet3,其数据如下图2至图4所示。 ? 图2 ? 图3 ?...图4 很显然,这些数据中最小值是工作表Sheet21,最大值是工作表Sheet3150。 可以使用下面的公式来获取多个工作表最小值: =MIN(Sheet1:Sheet3!...A1:D4) 使用下面的公式来获取多个工作表最大值: =MAX(Sheet1:Sheet3!A1:D4) 结果如下图5所示。 ?

8.4K10

开发实例:怎样用Python找出一个列表最大值最小值

Python,可以使用内置函数maxmin来分别找出一个列表最大值最小值。这两个函数非常简单易用,无需编写任何复杂代码即可找到指定列表最大或最小值。...min函数,以便获取nums列表最小值。...除了直接使用maxmin函数以外,还可以使用sorted排序函数来实现查找最值。具体做法需要先将列表元素排序,然后取第一个最后一个元素即为最小值最大值。...接着,声明两个变量min_nummax_num分别记录最小值最大值,稍微复杂一点地方在于使用了Python多赋值语法来同时获取这两个值。最后使用print语句输出变量值,结果是18。...总之,日常应用,获取列表最大值最小值是非常常见需求,Python提供了多种方法来解决这个问题,比如max、minsorted等内置函数,具体使用方法灵活多样,可以根据具体情况进行选择。

29610

C语言丨如何查找数组最大值或者最小值?图文详解

程序,我们经常使用数组(列表)存储给定线性序列(例如 {1,2,3,4}),那么如何查找数组(序列)最大值或者最小值呢?...查找数组(序列)中最大值最小值算法有很多,接下来我们以 {3,7,2,1} 序列为例讲解两种查找最值算法,一种是普通算法,另一种是借助分治算法解决。...普通算法 普通算法解决思路是:创建两个变量 max min 分别记录数组最大值最小值,它们初始值都是数组第一个数字。...直到遍历完整个数组,max 记录就是数组最大值,min 记录就是数组最小值。...下面的动画,演示了找最大值过程: 数组最大值过程 找最小值过程上图类似,这里不再给出具体动画演示。

5.2K30

Javascript获取数组最大值最小值方法汇总

比较数组数值大小是比较常见操作,下面同本文给大家分享四种放哪广发获取数组中最大值最小值,对此感兴趣朋友一起学习吧 比较数组数值大小是比较常见操作,比较大小方法有多种,比如可以使用自带...sort()函数,下面来介绍如下几种方法,代码如下: 方法一: //最小值 Array.prototype.min = function() { var min = this[0]; var len =...Array.prototype['max'] == 'undefined') { Array.prototype.max = function() { ... ... } } 方法二: 用Math.maxMath.min...(",");//转化为一维数组 alert(Math.max.apply(null,ta));//最大值 alert(Math.min.apply(null,ta));//最小值 以上内容是小编给大家分享...Javascript获取数组最大值最小值方法汇总,希望大家喜欢。

6.1K50

一个数组最大值最小值

这个不是lintcode里题目,但是感觉很经典,放在这里。 给定一个数组,在这个数组中找到最大值最小值。...最近在看一点算法书,看到分治法经典金块问题,实质就是一个数组中找到最大值最小值问题。 我们用分治法来做,先把数据都分成两两一组,如果是奇数个数据就剩余一个一组。...如果是偶数个数据,就是两两一组,第一组比较大小,分别设置为maxmin,第二组来了自己本身内部比较大小,用大max进行比较,决定是否更新max,小同样处理,以此类推。...如果是奇数个数据,就把minmax都设为单个那个数据,其他类似上面处理。 书上说可以证明,这个是在数组(乱序)找最大值最小值算法之中,比较次数最少算法。...瞄了一眼书上写法,还是很简单,一遍过。 //这是一分治法,这是寻找最大值最小值比较次数最小方法。

2.5K10

算法创作|求任意N个整数最大值最小值

问题描述 如何求得任意N个整数最大值最小值 解决方案 解决这个问题有三种常见思路,第一种思路比较简单粗暴,就是对用户输入每个整数两两之间进行比较,直到找到最大整数最小整数为止。...第二种思路是将用户输入整数放入一个空列表,然后利用Python内置max()函数min()函数分别得到最大值最小值。...第三种思路与第二种思路类似,也是将用户输入整数放入一个空列表,然后对列表进行排序,列表下标为0数即为最小值列表下标为N-1数即为最大值。...但在我们实际操作,用户难免会失误输入错误数据类型,导致Python无法正常处理某一个或者一段代码时候就终止运行并出现报错。 如下图: 这时候我们需要对代码进行调整,增强其处理异常数据能力。...结语 求得任意N个整数最大值最小值方法多种多样,其中,将用户输入整数放入一个空列表,随后对列表进行排序,并增强其处理异常数据能力使我们代码更加高效有用!

2.1K10

【Python 千题 —— 基础篇】列表最大值最小值(for 循环版)

示例 示例 ① 输出: 列表最大值是:392 列表最小值是:9 代码讲解 下面是本题代码: # 描述: 输出列表最大值最小值 # 输入: 无输入 # 输出: 输出列表最大值最小值 # 数字列表...numbers = [11, 39, 100, 48, 392, 10, 9] 初始化最大值最小值: 使用列表第一个元素初始化最大值最小值。...for num in numbers: 更新最大值最小值循环中,比较当前元素与最大值最小值,并更新它们。...print(f"列表最大值是:{max_value}") print(f"列表最小值是:{min_value}") 这样,程序会使用 for 循环遍历列表,并找到列表最大值最小值。...for num in numbers: 比较与更新: 循环中,使用条件语句比较元素与当前最大值最小值,并更新它们。

31480

Java获取一个数组最大值最小值

1,首先定义一个数组; //定义数组并初始化 int[] arr=new int[]{12,20,7,-3,0}; 2,将数组第一个元素设置为最大值或者最小值; int max=arr[0...];//将数组第一个元素赋给max int min=arr[0];//将数组第一个元素赋给min 3,然后对数组进行遍历循环,若循环到元素比最大值还要大,则将这个元素赋值给最大值;同理,若循环到元素比最小值还要小...,则将这个元素赋值给最小值; for(int i=1;i<arr.length;i++){//从数组第二个元素开始赋值,依次比较 if(arr[i]>max){//如果arr[i]大于最大值...,就将arr[i]赋给最大值 max=arr[i]; } if(arr[i]<min){//如果arr[i]小于最小值,就将arr[i]赋给最小值...[i]小于最小值,就将arr[i]赋给最小值 min=arr[i]; } } System.out.println("最大值是:"+max); System.out.println

6.2K20

Excel公式技巧55:查找并获取最大值最小值所在工作表

学习Excel技术,关注微信公众号: excelperfect 《Excel公式技巧54:多个工作表查找最大值最小值,我们MAX/MIN函数中使用多工作表引用来获取最大值/最小值。...现在更进一步,我们想要获取最大值/最小值所在工作表名称。 我们仍然使用上篇文章示例,工作表Sheet1、Sheet2Sheet3数据分别如下图1至图3所示。 ? 图1 ? 图2 ?...图3 我们知道这3个工作表最小值1位于工作表Sheet2,最大值150位于工作表Sheet3,那么如何使用公式获取对应工作表名称呢?...首先,工作表result单元格区域A2:A4分别输入工作表名称Sheet1、Sheet2、Sheet3。...代入INDEX函数,得到: INDEX(A2:A4,2) 结果为单元格A3值: Sheet2 同理,单元格D3数组公式为: =INDEX(A2:A4,MATCH(TRUE,COUNTIF(INDIRECT

2.2K30

WinCC 如何获取在线 表格控件数据最大值 最小值时间戳

1 1.1 <读取 WinCC 在线表格控件特定数据列最大值最小值时间戳,并在外部对 象显示。如图 1 所示。...左侧在线表格控件显示项目中归档变量值,右侧静态 文本显示是表格控件温度最大值最小值相应时间戳。 1.2 <使用软件版本为:WinCC V7.5 SP1。... “列”页,通过画面箭头按钮可以把“现有的列”添加到“选型列”,通过“向上”“向下”按钮可以调整列顺序。详细如图 5 所示。 5.配置完成后效果如图 6 所示。...6.画面配置文本域输入输出域 用于显示表格控件查询开始时间结束时 间,并组态按钮。用于执行数据统计和数据读取操作。如图 7 所示。...点击 “执行统计” 获取统计结果。如图 11 所示。 3.最后点击 “读取数据” 按钮,获取最大值最小值时间戳。如图 12 所示。

8.8K10

Python递归求出列表(包括列表列表)最大值实例

要求:求出列表所有值最大数,包括列表带有子列表。 按照Python给出内置函数(max)只能求出列表最大值,无法求出包括列表列表最大值 Python3代码如下: #!...按照上述操作我们无法将列表列表值进行对比,那么我们可以尝试着自己制作一个可以对比列表列表值,这个方法特别简单,使用递归函数对每个值进行对比,包括子列表值。...思路: 使用递归函数方式列出,首先我们将每个列表值全部列出来,在此我们使用循环方式将列表值列出,然后对列表类型进行判断,如果值类型为list,那么我们就再次列出列表值,以此类推,我们就能够得出所有的列表值...然后我们函数中将返回结果给出一个默认值,值为0,然后将返回值跟列表所列出来值进行对比,如果谁大,那么返回结果值将等于他,以此类推,我们最终得出结果就是正个列表最大值,说着可能有点难懂,那么直接上代码...这里我们依靠递归函数作用,将所有表值全部取下,并且进行判断。 以上就是使用递归函数求出整个列表最大值,说明过程比较粗糙,请多多见谅。希望大家多多支持ZaLou.Cn!

5.3K40

关于vim查找替换

1,查找 normal模式下按下/即可进入查找模式,输入要查找字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。...set smartcase 将上述设置粘贴到你~/.vimrc,重新打开Vim即可生效 4,查找当前单词 normal模式下按下*即可查找光标所在单词(word), 要求每次出现前后为空白字符或标点符号...例如当前为foo, 可以匹配foo barfoo,但不可匹配foobarfoo。 这在查找函数名、变量名时非常有用。 按下g*即可查找光标所在单词字符序列,每次出现前后字符无要求。...即foo barfoobarfoo均可被匹配到。 5,查找与替换 :s(substitute)命令用来查找替换字符串。...^E与^Y是光标移动快捷键,参考: Vim如何快速进行光标移 大小写敏感查找 查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找

21.6K40
领券