目录
题目
若干人(Person对象)进行分组,每4人为一组,不够4人则直接成组。 若最后剩余0人,则正好4人一组。最后剩余1人,则把上一4人组与这1人进行组合,一组2人一组3人。若最后剩余2人,则把上一4人组与这2人进行组合,每组3人。若最后剩余3人,则此3人为一组。
结果:打印出每组成员
let divideGroup = function(arr){
const len = arr.length, NUM = 4,result = [];
const reminder = len % NUM;
if(len <= 4){
result.push(arr.slice(0))
return result
}
for(var i=0; i<len-reminder; i+=4){
result.push(arr.slice(i, i+NUM))
}
if(reminder === 1){
result.pop()
result.push(arr.slice(-5, -3))
result.push(arr.slice(-3))
}else if(reminder === 2){
result.pop()
result.push(arr.slice(-6, -3))
result.push(arr.slice(-3))
}else if(reminder === 3){
result.push(arr.slice(len-reminder))
}
return result;
}
2.用JavaScript写一个函数,输入int型,返回整数逆序后的字符串。如:输入整型1234,返回字符串“4321”。要求必须使用递归函数调用,不能用全局变量,输入函数必须只有一个参数传入,必须返回字符串。
function reverseNumber(num){
let num1 = num / 10;
let num2 = num % 10;
if(num1 < 1){
return num;
}else{
num1 = Math.floor(num1)
return `${num2}${reverseNumber(num1)}`
}
}
3. 传入字母和*组成的数组,如['a', 'b', 'c', '*', '*', 'd'],字母为一组,*号为一组,然后翻转数组,即返回['d', '*', '*', 'a', 'b', 'c']
/**
* arr 数组
**/
function reverseArr(arr){
// lastIndex 为从右到左*号的位置
let lastIndex = arr.length, res = [];
for(let i=arr.length-1; i>=0; i--){
//遇到*,push*后数组,然后push*
if(arr[i] === '*'){
res.push(...arr.slice(i+1, lastIndex), '*')
lastIndex = i;
}
}
// 如果第一位不是*,需要把0,lastIndex的非*放入
if(arr[0]!=='*'){
res.push(...arr.slice(0, lastIndex))
}
return res;
}
题目升级,连续字母一组,连续非字母一组,然后分组排序。
function reverseArr(arr){
// flag true表示当前匹配到了非字母块
let lastIndex = arr.length,flag = false, res = [];
for(let i=arr.length-1;i>=0; i--){
// 当前非字母且flag false的话,添加非字母后的字母到lastIndex数组解析,并把flag设置为true
if(!/[a-zA-Z]/g.test(arr[i])){
if(!flag){
res.push(...arr.slice(i+1, lastIndex))
lastIndex = i;
}
flag = true
}
// 当前字母且flag true的话,添加字母后的非字母到lastIndex+1的数组解析,并把flag设置为false
else {
if(flag){
res.push(...arr.slice(i+1, lastIndex+1))
lastIndex = i+1;
}
flag = false
}
}
// 处理头部的全字母或者全非字母
if(!flag){
res.push(...arr.slice(0, lastIndex))
}else {
res.push(...arr.slice(0, lastIndex+1))
}
return res;
}
坐等大佬指导 更好的解决方法~~~~
4. 字节--接雨水
暴力法 Math.Max(r_max,l_max) - height[i] o(n^2), o(1)
O(n),O(n)
双指针
0-1背包
持续更新中...