当前位置:网站首页>面试算法题
面试算法题
2022-07-21 15:11:00 【诡秘愚者】
一、给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数
class Solution:
def firstMissingPositive(self, nums: List[int]) -> int:
m = 1
n = len(nums)
if n == 0:
return m
nums.sort()
for i in nums:
if i == m:
m += 1
return m
二、如何用rand7生成rand10
def rand_10():
r1 = rand_7()
r2 = rand_7()
r = (r1 - 1) * 7 + r2
a = True
while a:
if 1 <= r <= 40:
num = (r-1)%10 + 1
a = False
return num
三、给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。
形成三角形的条件为两小边之和大于第三边,明确条件后确定思路:
- 将给定数组排序,使小边在左,大边在右
- 从 n u m s [ 2 ] nums[2] nums[2]开始遍历数组, i i i指向本次遍历范围的最大边
- 定位左右指针,左指针初始指向 n u m s [ 0 ] nums[0] nums[0],右指针初始指向 n u m s [ i − 1 ] nums[i - 1] nums[i−1]
- 若左 + 右 <= 大边, l + 1 l + 1 l+1
- 若左 + 右 > 大边,则 [ l , r ) [l ,r) [l,r)范围内任取一个数作为 n u m s [ l ] nums[l] nums[l],均可达到 n u m s [ l ] + n u m s [ r ] > n u m s [ i ] nums[l] + nums[r] > nums[i] nums[l]+nums[r]>nums[i],res += r - l
class Solution:
def triangleNumber(self, nums: List[int]) -> int:
n = len(nums)
nums.sort()
num = 0
if n == 3:
if nums[0] + nums[1] > nums[2]:
return 1
else:
return 0
else:
for i in range(2, n):
l, r = 0, i-1
while l < r:
if nums[l] + nums[r] > nums[i]:
num += r - l
r -= 1
else:
l += 1
return num
四、最接近的三数之和
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target最接近。返回这三个数的和。假定每组输入只存在唯一答案。
class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
n = len(nums)
nums.sort()
res = float('inf')
for i in range(n):
if i > 0 and nums[i] == nums[i-1]:
continue
else:
l, r = i+1, n-1
while l < r:
cur_sum = nums[i] + nums[l] + nums[r]
if cur_sum == target:
return target
elif cur_sum < target:
l += 1
else:
r -= 1
if abs(cur_sum - target) < abs(res - target):
res = cur_sum
return res
边栏推荐
- Mod17a3hgf data download
- 【MySQL和数据库】MySQL & database 第十一章:流程控制结构
- When running, the object moves, rotates and scales the plug-in, "runtimetransformgizmos plug-in" tutorial (unity3d)
- EF数据迁移
- Matlab GUI编程技巧(九):详解 uitable 函数显示表格及相关操作(创建表用户界面)
- Arcgis图层标注显示
- 工作杂记之 GDB在线调试
- 微信小程序之侧边列表菜单(侧边菜单)的实现
- Qt之QML虚拟键盘
- application. YML and application Property configuration does not take effect
猜你喜欢
随机推荐
高通与苹果和解,获得至少45亿美元和解费!下一个目标:华为!
Codeforces Round #693 (Div. 3) C. Long Jumps 题解
2022.7.19 simulation match
FileNotFoundError: [Errno 2] No such file or directory: ‘cmake‘
贾跃亭的法拉第未来再获2.25亿美元融资,FF91即将量产!
关于性能测试的这点事,干货来袭「建议收藏」
在线股票开户很复杂吗?请问,手机开户股票开户安全吗?
【MATLAB问题解决】解决Matlab编译后的.exe文件在另一台电脑上无法运行的问题
微信小程序列表渲染之上拉加载更多
String... 可变长度参数列表
ps小白从0开始……
PS抠出logo
Strategy mode
String... Variable length parameter list
Splay补完计划
cookis,localStorage,sessionStorage区别?
Matlab写入excel-字符串与数字合并
[MySQL and database] MySQL & database Chapter 10: function learning
Envi band synthesis inverse operation -- band splitting
自定义 Handler 时如何有效地避免内存泄漏问题?