面试算法题

微软面试算法题总结 Leecode 84 第一题是数字三角形找最大和路径 (容易题) 第二题是二叉树中找两个节点的最近公共祖先节点 (最近公共祖先) 给定二叉树中的特定节点中序遍历后的下一个节点 (剑指offer) Leetcode 124 最大路径和 做题 (并查集) 有n个二维平面上的点和距离d,将它们分成k组。 若两点间的距离小于等于d,则这两个点在一组;如果点A和点B在一组,点B和点C在一组,则点A和点C... 阅读详情

一、给你一个未排序的整数数组 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


社招面试总结——算法题篇 面试结果 总结下最近的面试: 头条后端:3面技术面挂 蚂蚁支付宝营销-机器学习平台开发: 技术面通过,年后被通知只有P7的hc 蚂蚁中台-机器学习平台开发: 技术面通过, 被蚂蚁HR挂掉(脉脉上好多人遇到这种情况,一个是今年大环境不好,另一个,面试尽量不要赶上阿里财年年底,这算是一点tips吧) 快手后端: 拿到offer 百度后端: 拿到offer 最终拒了百度,去快手了, 一心想去阿里, ... 阅读详情

相关推荐

快手面试算法题合集

1.力扣原题:最长不重复序列 import java.util.*; public class kuaishou { public static void main(String[] args){ Scanner in=new Scanner(System.in); String s=in.nextLine(); System.out.println(longestPalindrome(s)); } public static String longest

JiangCaifu的博客 3660

#LeetCode刷题——41.缺失的第一个正整数

难度:Hard 一、题目描述 给你一个未排序的整数数组nums,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为O(n)并且只使用常数级别额外空间的解决方案。 通过题目应该了解:缺失的正整数有俩种可能 1、缺失的正整数是在 [1,nums.length] 这个区间之间。如果数组中有负数,那么正整数一定在这个区间内 2、如果区间中每个元素都有,那么缺失的正整数是 nums.length + 1 。比如 :nums = [1,2,3,4] ,...

YZG ' BLOG 1417

面试总结之算法题

在一个多月的面试过程中,有很多需要讲思路或实现的算法或其他题目,这里总结下作为复习。后面不断更新。

Coding的博客 1428

Leetcode 41 缺失的第一个正数

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。,请你找出其中没有出现的最小的正整数。并且只使用常数级别额外空间的解决方案。来源:力扣(LeetCode)给你一个未排序的整数数组。请你实现时间复杂度为。

一点点奋斗的程序媛 305

华为外包l两道面试算法题。

今日下午刚结束面试。一共两技术人员面的,一人出了一道算法题,记录下,并为以后做些准备,由于远程面试,所以没有代码测试,不知道行不行的通,且行且看吧。 1、输入为String 字母卡片(可以重复)和一个单词,问利用字母卡片是否能拼出单词。 事例:字母卡片“Zoos”,单词“Zoo” 答案是可以的输出true 如果单词是“Zoom” 输出为FALSE /*我一...

可及的小屋 1988

华为面试算法题

华为面试算法题

touchingnotyet的博客 5212

TypeScript算法题实战——二叉树篇

二叉树是树形结构的一个重要类型。二叉树是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树,经常在算法中有灵活而巧妙的应用,是算法面试中的常客,也是众多数据结构的基石。 本系列博文将通过一些力扣算法题目学习TypeScirpt,这篇将以二叉树为主题边学习TypeScipt边实战算法。(部分算法思想参考于程序员Carl:代码随想录)

白洞,白色的明天在等着我们 2571

CVTE 面试的两道算法题

下了班立马赶往深圳北站,下着大雨又坐过了站,着急地跑向对面的站牌,匆忙间搞得满头大汗。好不容易坐上了高铁,休息片刻,终于有时间整理一下前两天面试CVTE 时遇到的两道算法题。 1. 在数组中寻找和为固定值的两个数字 这道题目是一面的时候一个女面试给出的最后一个面试问题。题目的大概意思如上,数据不一定有序,而且要求是在O(n) 的时间内找到答案。对于常年混迹LeetCode 的人来说,这是一道再...

少东的博客 1199

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数

原地哈希算法的原理是通过修改输入数据本身,将数据映射到正确的位置上,从而完成一些特定的操作。在具体的场景中,原地哈希算法通常用于解决一些空间复杂度受限制的问题,以达到在常数级别的额外空间内完成操作的目的。然后再次遍历数组,找到第一个不在正确位置上的数,其索引加一即为缺失的最小正整数。这样,通过两次遍历和原地交换的方式,就可以在常数级别的额外空间内找到未排序整数数组中缺失的最小正整数。在这一步中,如果 nums[i] 不在正确的位置上,并且它应该在的位置上的数不等于它,就进行交换。

m0_53291740的博客 849

移动机器人底盘-四轮差速模型(四轮独立)

对于底盘的前轮和后轮来说,其速度是同步的,那么在理想条件下,可以将底盘运动视为以ICR为圆心做圆周运动,对于四个轮子来说,圆周运动的角速度是一致的,圆周运动圆心ICR始终位于底盘几何中心COG的y轴延长线上,ICR与COG之间的距离。有关,整个底盘的速度位于速度瞬心COM处,用。四轮差速底盘设定左轮、右轮得速度分别为。圆周运动的角速度公式如式1所示。受约束,约束与圆周运动的角速度。合成,设四个轮子的速度分别为。,设左轮和右轮之间的轴距为。为圆周运动角速度,线速度为。,其均由预设目标速度。

Moresweet 猫甜 1万+

VSCode关联VIVADO编辑Verilog

有时候接手别人的代码,或者从网上找的开源代码,每个人风格不一致,对齐缩进也不一样,阅读起来很累。有没有什么方法能快捷地格式化代码呢。下面我们利用VSCode插件来实现这个需求。Vivado是Xilinx公司提供的逻辑开发平台(之一),如果不喜欢Vivado自带的文本编辑器,可以选择第三方的文本编辑器VSCode。

小王在努力...的博客 7150

TypeScript算法题实战——剑指 Offer篇(1)

本章节包括的题目有: | 数组中重复的数字| 简单 | | 二维数组中的查找| 中等 | | 替换空格| 简单 | | 从尾到头打印链表| 简单 | | 重建二叉树| 中等 | | 用两个栈实现队列| 简单 | | 斐波拉契数列| 简单 | | 青蛙跳台阶问题| 简单 | | 旋转数组的最小数字| 简单 | | 矩阵中的路径| 中等 |

白洞,白色的明天在等着我们 2320

3GPP协议解读_NTN系列(一)_38.811_非地面网络(NTN)的背景、应用场景和信道建模

非地面网络覆盖广,对物理攻击和自然灾害有一定的抵抗性。本文根据3GPP协议对NTN网络的背景、应用场景和信道模型进行了整理。

JCMLSY的博客 4925

Android 面试那些事之算法题

一、冒泡算法:(经典考题,你必须会) public class BubbleTest {    /**      * @param args      */     public static void main(String[] args) {                  int array[]={33,22,15,89,55};         sort(array);

if(...){...} 2506

tcmalloc(高并发内存池)简化版讲解-项目

高清发不上去,私我发高清,项目完整代码@我。

2201_75352618的博客 910

6.4 实战项目:基于Agent内核构建Code Review智能体

本文介绍了一个基于Agent内核构建的智能Code Review系统实战项目。系统采用多Agent协作架构,包含代码质量分析、安全漏洞识别、性能优化建议等核心功能模块。文章详细展示了系统架构设计,采用协调器Agent管理多个专业Agent协同工作,并提供了基础Agent框架和协调器Agent的TypeScript实现代码。项目结合了AI Agent核心原理和多Agent协作机制,实现了自动化的代码审查流程,能够生成详细的审查报告,帮助开发者提升代码质量和安全性。

yonggeit的博客 3106

面试高频算法题

近年来算法在大厂面试中几乎是必问的,特别是字节跳动和快手,其技术三轮面试都会在每轮面试最后出一道算法题,虽然有些公司算法在整个面试分数中占比不是很高,但是如果算法过了,无疑是加分项。而...

技术原始积累 560

YOLOv11改进策略【模型轻量化】| 使用 MoblieOne 模块,引入结构重参数化,提高模型检测效率

本文记录的是基于MobileOne的YOLOv11骨干网络改进方法研究。MobileOne的基础模块通过重参数化,。在将其替换YOLOv11的骨干网络后,实现模型轻量化。

Limiiiing的博客 1424

Java 面试中的高频算法题详解

在Java面试中的高频算法题中,常见的有排序算法、动态规划、回溯算法和贪心算法等。每种算法都有其独特的应用场景和解题策略。排序算法如快速排序和归并排序广泛用于数组和列表的排序;动态规划用于解决如背包问题、最长公共子序列等需要优化子问题的复杂问题;回溯算法适用于解约束条件的排列、组合问题,例如N皇后问题;而贪心算法则在活动选择、最短路径等问题中通过局部最优选择构建全局最优解。这些算法不仅是编程面试中的常见题目,也是日常编程工作中解决复杂问题的常用工具。通过对这些算法的深入理解和掌握,可以帮助开发者提高解决问题

想看什么文章都可以私信给我,综合性博客。 2206

一张微服务地图的十年演进:Spring Cloud 核心、扩展与工具组件的定位、原理与选型

本文把 Spring Cloud 当作一张微服务地图来读:先说明它是由 Commons 抽象层、实现层和 Boot 装配层构成的发行版,再沿一次请求梳理注册发现、负载均衡、声明式调用、容错限流、网关、配置、追踪与总线七类核心组件的原理与换代,并扩展到云平台、服务网格、消息流、批处理、安全与周边生态。仿真实测:默认参数下实例宕机平均 242 秒才被感知,优雅下线降到 47 秒;一个慢实例让轮询的 P99 达 49 秒,P2C 仅 203 毫秒。最后给出退场替代表、技术栈组合、升级路线和决策树。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 169万+

Linux下的隐藏技术(文件隐藏、进程隐藏、端口隐藏、权限隐藏、命令隐藏)

这种技巧是关键记录删除,或者我们可以暴力点,比如前150行是用户的正常操作记录,150以后是攻击者操作记录。在Linux中,使用chattr命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。这种情况下我们怎么办?在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?

墨痕诉清风的博客 742

前端面试必备-40道LeetCode经典面试算法题

2019年马上就要结束了,相信很多童鞋都开始蠢蠢欲动了,寻找新的机会了,但是工作太忙没有时间刷算法题,面试的时候好心虚。这里双手奉上40道LeetCode上经典面试算法题,整理的内容有点长,建议先收藏,慢慢消化,在来年顺利拿到满意的offer。 内容较多,整理不易,希望大家关注公众号【前端】,更多优质前端原创好文。 [LeetCode] 两数之和 给定一个整数数组和一个目标值,找出数组中和为...

大灰狼的小绵羊哥哥的博客 5624

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

面试官问出这几道算法题,你能扛住么?

写在前面 优快云话题挑战赛第1期 活动详情地址:https://marketing.youkuaiyun.com/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题:前端面试宝典 话题描述:欢迎各位加入话题创作得小伙伴,如果我没有猜错得话,我觉得你是应该同我一样是一位前端人。如今前端在IT事业中的占比越来越重,已经成为不可缺少的部分,前端技术也是层出不穷,各种技术类、技术框架也蜂拥而出,前端面试的难度也随之增加,如果我们拥有一套前端面试宝典。如果你是应聘者:你就可以从容的solo面试官,

欢迎关注,一起进步! 3859

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

名企面试算法题

转发:名企面试算法题,建议多看看严蔚敏老师的数据结构。。超级有用!!!!!!! 名企面试算法题

Cincan的博客 504

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C++经典面试算法题

#include #include #include ////////////////////////////////////////////////////////////////////////// // C++ 经典面试算法题 [7/28/2016 FreeAngel] //1.实现strcpy. char* MyStrCpy( char *pDest, const

F_r_e_e_x的专栏 1万+

程序员面试需要刷力扣算法题吗

这里写目录标题1. 程序员面试需要刷力扣算法题吗1.1. 算法题的一些特征1.2. 为什么要考查算法1.3. 目前面试主要考查 3 类 1. 程序员面试需要刷力扣算法题吗 1.1. 算法题的一些特征 平常工作中基本用不到。 跳槽中有用, 几乎是必备。 对于个人来讲, 就是: 算法比较烧脑。 没有时间练习算法题。 1.2. 为什么要考查算法 借鉴美国技术考查方式。 入行门槛越来越低, 加入的人越来越多, 提高门槛筛选出更加优秀 (工作能力 + 智力, 智力指算法层面) 的人。 算法要刷到一定程度才有

云满笔记 2399
上一篇: 常见分布的期望、方差、估计
下一篇: VLOOKUP函数
米法·
博客等级 码龄8年 179粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值