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.不用额外变量交换两个整数的值
题目链接
https://www.nowcoder.com/practice/1827258942284b2abfe65809785ac91a?tpId=101&&tqId=33210&rp=6&ru=/activity/oj&qru=/ta/programmer-code-interview-guide/question-ranking
题目描述
不用额外变量交换两个整数的值。
输入描述:
输出一行,包含两个整数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状态码
题目链接
https://www.nowcoder.com/practice/99dba043761e43c2a6f931e2c5c247c7?tpId=107&&tqId=33355&rp=7&ru=/activity/oj&qru=/ta/beginner-programmers/question-ranking
题目描述
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;
}
}