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

【JavaScript】函数 ③ ( 形参 与 实参 匹配问题 | 实参个数 = 形参个数 | 实参个数 > 形参个数 | 实参个数 < 形参个数 )

不匹配 , 也不会报错 ; 2、形参与实参个数匹配 如果 实参 的个数 , 与 形参个数一致 , 则正常输出结果 ; // 定义函数 有 2 个形参 function...传入 2 个实参, 输出正常结果 add(1, 2); 输出结果为 3 ; 3、实参个数 > 形参个数 如果传入的 实参个数 大于 形参个数 , 则取 形参 个数个 实参 ; 下面的代码中...< 形参个数 如果 传入的 实参个数 小于 形参个数 , 那么 后面 没有实参对应的 形参 , 就被当做 声明后未赋值的变量 , 默认值就是 undefined ; 下面的 add 函数中 , 定义了...形参个数 = 实参个数 , 传入 2 个实参, 输出正常结果 add(1, 2); // 2....形参个数 < 实参个数 , 传入 3 个实参, 只接受前 2 哥实参 add(3, 4, 5); // 3.

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

第 N 个数

所以,要想找出序列中第 n 位对应的数字,我们的第一步应该是先去寻找出这个数字来源于哪个数字。...由此的话,想要找出这个数位来源于哪个数字需要先去判断一下这个数字的长度是多少。 1、比如数位 10 的数字 1 的位数是 2,因为它来源于数字 10,长度为 2 。...对于长度为 6 的数字来说: 1、第一个数字是 100000,n = 1 、2、3、4、5、6 都是在这个数字上 2、第二个数字是 100001,n = 7、8、9、10、11、12 都是在这个数字上...根据上面的结论,n 是以 6 为单位不停的在长度为 6 的 100000 这个数字上累加 1 ,意味着 n 每隔 6 个数就来到下一个数字,那么将 n 对 6 取余后的数字就是它在这个数字上的顺序。...curNum 表示落在哪个数字上 len 表示这个数字的长度 count 表示在这个数字的第几个位置上 由此,这道题目就解决了,总结一下: 1、先找出 n 是落在长度为多少的数字上 2、再找出 n 落在哪个数字上

60010

求一个数组的最大k个数(java)

问题描述:求一个数组的最大k个数,如,{1,5,8,9,11,2,3}的最大三个数应该是,8,9,11 问题分析:     1.解法一:最直观的做法是将数组从大到小排序,然后选出其中最大的K个数,但是这样的解法...但是这都是会对前K个数进行排序,所以效率不高,当K很大的时候,以上两种方法效率都不是很高。    ...2.解法二:不对前K个数进行排序,回忆快排的算法中,那个partition函数,就是随机选择数组中的一个数,把比这个数大的数,放在数组的前面,把比这个数小的数放在数组的 后面,这时想如果找出的随机数,最终位置就是...K,那么最大的K个数就找出来了,沿着这个思路思考问题,但是这个函数,最后的索引位置并不一定是K,可能比K大也可能比K小,我们把找出的数组分成两部分sa,sb,sa是大的部分,sb是小的部分,如果sa的长度等于

80020

最小的K个数

题目: 思路: 思路一:直接利用快速排序的方法对数组进行排序,时间复杂度为O(NlogN),简单便捷,排完序之后便是有序的数组,直接去前K个数出来 思路二:根据一次快排(Partition)的想法,我们知道一次随机快速排序可以确定一个有序的位置...,这个位置的左边都小于这个数,右边都大于这个数,我们如果能找到随机快速排序确定的位置等于k-1的那个位置,那么0-k-1个数就是我们要找的数。...缺点: 这种方法的时间复杂度虽然是O(n),但是找出来的最小的K个数却不是排序过的。而且这种方法有个限制,就是必须修改给的数组。...思路三:利用大顶堆或小顶堆的思路,就是循环一遍数组,先直接将数组的前K个数直接塞入数组TEMP,构建堆。...然后从第K个数开始循环,先取出TEMP的第k-1个数值(即最大或者最小),进行比较,如果符合条件(即大于或小于),将堆的K-1踢出,将新值放入,重新构建堆。重复以上步骤直至循环结束。

29010

从10W个数中随机抽走2个数,求出那两个数是多少

这道题目是从51js论坛上看到的,链接在这里>> 题目大意是: 从1到10w(共10w个数)中随机抽走2个数,然后打乱剩下的数的顺序,问如果从这剩下的数中快速的找出抽走的是哪2个数?...我想这道题目其实还有限制(印象中好像以前见过,忘记在哪了…),例如: 1、控制变量的个数使用(最多不允许超过5个) 2、不允许使用数组变量 3、不允许改变数组的值 出这种题目,一般来讲是让答题者只使用一次循环...说明:下文中所指的原数组是指,未被打乱顺序、未被截取的数组          现在的数组,指被抽走2个数且顺序被随机打乱了的数组。...() {return Math.random() > 0.9;}); 如果找出这两个数呢?...假设这二个数是x和y,则有如下的公式: 令x + y = b    x * x + y * y = c; 为什么假设 x * y = c 呢?

1K30
领券