65.面试题57 - II. 和为s的连续正数序列
题目链接
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof
题目描述
输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。
序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。
示例1
输入:target = 9
输出:[[2,3,4],[4,5]]
示例2
输入:target = 15
输出:[[1,2,3,4,5],[4,5,6],[7,8]]
限制:
1 <= target <= 10^5
关键技术
滑动窗口
题目分析
- 设置滑动窗口的左边界和右边界默认值分别为1,2。
- 求滑动窗口的左边界到右边界的和sum(包括左边界到右边界)。
- 判断target和sum的大小,如果sum == target,把右边界往右移一位(right++),如果sum > target,把左边界往右移一位(left++),如果sum < target,把右边界往右移一位(right++)。
- 循环终止条件:右边界大于Math.ceil(target/2)+1。
/** * @param {number} target * @return {number[][]} */ var findContinuousSequence = function(target) { let left = 1; //左边界 let right = 2; //右边界 let sum = left + right; //滑动窗口左边界到右边界的和 let res = []; while(right < Math.ceil(target/2)+1){ if(sum == target){ res.push(range(left,right)); right++; sum += right; }else if(sum < target){ right++; sum += right; }else if(sum > target){ sum -= left; left++; } } return res; }; function range(left,right){ let arr = []; for(let i=left; i<=right; i++){ arr.push(i); } return arr; }
66.不用额外变量交换两个整数的值
题目链接
题目描述
不用额外变量交换两个整数的值。
输入描述:
输出一行,包含两个整数n和m(−10^9≤n,m≤10^9)。
输出描述:
输出交换后的n和m的值。
示例1
输入
2 3
输出
3 2
备注:
时间复杂度O(1)O(1),额外空间复杂度O(1)O(1)。
题目分析
这。。。。没啥说的。。
var input = readline().split(' '); var n = input[0]; var m = input[1]; print(m,n);
67.HTTP状态码
题目链接
题目描述
KiKi访问网站,得到HTTP状态码,但他不知道什么含义,BoBo老师告诉他常见HTTP状态码:200(OK,请求已成功),202(Accepted,服务器已接受请求,但尚未处理。)400(Bad Request,请求参数有误),403(Forbidden,被禁止),404(Not Found,请求失败),500(Internal Server Error,服务器内部错误),502(Bad Gateway,错误网关)。
输入描述
多组输入,一行,一个整数(100~600),表示HTTP状态码。
输出描述
针对每组输入的HTTP状态,输出该状态码对应的含义,具体对应如下:
200-OK
202-Accepted
400-Bad Request
403-Forbidden
404-Not Found
500-Internal Server Error
502-Bad Gateway
示例1
输入
200
输出
OK
题目分析
这。。。。也没啥说的。。
var input; while(input = readline()){ switch(parseInt(input)){ case 200 : console.log('OK');break; case 202 : console.log('Accepted');break; case 400 : console.log('Bad Request');break; case 403 : console.log('Forbidden');break; case 404 : console.log('Not Found');break; case 500 : console.log('Internal Server Error');break; case 502 : console.log('Bad Gateway');break; } }