Open EdwardZZZ opened 7 years ago
给定一个递增序列,a1 <a2 <…<an 。定义这个序列的最大间隔为d=max{ai+1 – ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?
输入描述:
第一行,一个正整数n(1<=n<=100),序列长度;接下来n个小于1000的正整数,表示一个递增序列。
输出描述:
输出答案。 输入例子:
1 2 3 7 8
输出例子:
4
// ES5 arr.forEach((n, i) => { result = Math.max(result, arr[i] - arr[i-1] || 0) }) result = arr.reduce((prev, curr, i, _arr) => Math.max(prev, curr - arr[i-1] || prev), 0); // ES6 result = Math.max(...arr.map((n, i) => arr[i] - arr[i-1] || 0));
春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。 给定一个红包的金额数组gifts及它的大小n,请返回所求红包的金额。 若没有金额超过总数的一半,返回0。
测试样例:
[1,2,3,2,2]
返回:
2
// ES5 const newArr = {}; arr.forEach((n) => { newArr[n] = newArr[n] ? newArr[n] + 1 : 1; }); // ES6 // Math.max(...Object.keys(newArr).map((n) => newArr[n])); Math.max(...Object.values(newArr));
输入一个字符串,求出该字符串包含的字符集合
每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。
每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。
输入例子:
abcqweracb
abcqwer
const str = 'abcqweracb'; // ES6 [...new Set(str.split(''))].join('') // ES5 str.split('').filter((s, i) => str.indexOf(s) === i).join('') // Regexp str.replace(/./g, ($1, $2, $3) => $3.indexOf($1) === $2 ? $1 : '') // 倒序 str.replace(/(.)(?=.*\1)/g, '')
1、题目描述
给定一个递增序列,a1 <a2 <…<an 。定义这个序列的最大间隔为d=max{ai+1 – ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?
输入描述:
输出描述:
输出答案。 输入例子:
输出例子:
2、题目描述
春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。 给定一个红包的金额数组gifts及它的大小n,请返回所求红包的金额。 若没有金额超过总数的一半,返回0。
测试样例:
返回:
3、题目描述
输入一个字符串,求出该字符串包含的字符集合
输入描述:
输出描述:
输入例子:
输出例子: