算法笔试模拟题精解之“朋友一生一起走”

简介: 根据题意可以得出,在不考虑数字范围的情况下,相加等于 k 的数总共有 k/2 对(如果 k 为偶数,应为 k/2-1 对,此处以 k/2 为例)。也就是说,如果 n 的值大于 k 的值,那么 k 的所有数对都符合条件,即 1-n 中一共有 k/2 对好朋友。

在线编程介绍

阿里云开发者社区在线编程产品,针对广大开发者学习、实践、面试、应聘、考试认证等打造的免费在线刷题神器。题库来自笔试模拟题、算法大赛模拟题等,界面整洁明了,操作简单,为用户营造专心答题的学习环境。点击链接开始体验:https://developer.aliyun.com/coding

本文为大家介绍其中的 第52题:朋友一生一起走 的题目解析,具体如下:

题目描述

题目等级:容易
知识点:数学

查看题目:朋友一生一起走
Tom想从n个数(1<=n<=1e14)中把“好朋友”挑出来,“好朋友”的定义是相加等于k(1<=k<=1e14),其中(1,2)和(2,1)算一对,请你帮Tom计算一下1-n中一共有多少对好朋友?
输入数字总数n和“好朋友”数的和k;
输出1-n中的好朋友有多少对。
示例1
输入:
3
5
输出:
1

解题方法

根据题意可以得出,在不考虑数字范围的情况下,相加等于 k 的数总共有 k/2 对(如果 k 为偶数,应为 k/2-1 对,此处以 k/2 为例)。也就是说,如果 n 的值大于 k 的值,那么 k 的所有数对都符合条件,即 1-n 中一共有 k/2 对好朋友。

如果 n 的值小于等于 k,那么 k 的有些数对会超出 n 的范围,需要舍弃。

根据n的范围限制,可以计算得出,需要舍弃掉的对数为(k-n-1), 即此时一共有 k/2 -(k-n-1)对好朋友,若计算出此数为负值,即好朋友的对数为0。

时间复杂度:O(1)
空间复杂度:O(1)

看完之后是不是有了想法了呢,快来练练手吧>>查看题目:朋友一生一起走

720-150.png

目录
打赏
0
0
0
0
184
分享
相关文章
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
98 0
往年 | 大疆雷达算法校招笔试题目解析
往年 | 大疆雷达算法校招笔试题目解析
576 1
压缩算法 【腾讯2020校园招聘-后台&综合-第一次笔试 】
压缩算法 【腾讯2020校园招聘-后台&综合-第一次笔试 】
107 0
骚戴独家笔试---算法篇4
骚戴独家笔试---算法篇4
85 1
骚戴独家笔试---算法篇3
骚戴独家笔试---算法篇3
225 0
骚戴独家笔试---算法篇3
7大排序算法-- 堆排 快速排序 --精解(下)
7大排序算法-- 堆排 快速排序 --精解(下)
96 0
7大排序算法-- 堆排 快速排序 --精解(上)
7大排序算法-- 堆排 快速排序 --精解
69 0
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解(下)
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解(下)
161 0
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解(上)
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解
98 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等