算法
YTIANYE
这个作者很懒,什么都没留下…
展开
-
腾讯笔试题:第K小子串(python实现)
题目链接:https://www.nowcoder.com/questionTerminal/c59d9690061e448fb8ec7d744c20ebff?answerType=1&f=discussion来源:牛客网输入一个字符串 s,s 由小写英文字母组成,保证 s 长度小于等于 5000 并且大于等于 1。在 s 的所有不同的子串中,输出字典序第 k 小的字符串。字符串中任意个连续的字符组成的子序列称为该字符串的子串。字母序表示英文单词在字典中的先后顺序,即先比较第一个字母原创 2022-03-05 22:25:09 · 795 阅读 · 0 评论 -
腾讯笔试题——朋友圈(并查集、Golang)
例题链接:朋友圈(后端开发卷)_腾讯笔试题_牛客网来源:牛客网现在有 105 个用户,编号为 1- 105,现在已知有 m 对关系,每一对关系给你两个数 x 和 y ,代表编号为 x 的用户和编号为 y 的用户是在一个圈子中,例如: A 和 B 在一个圈子中, B 和 C 在一个圈子中,那么 A , B , C 就在一个圈子中。现在想知道最多的一个圈子内有多少个用户。数据范围: 1≤m≤2×1061 \le m \le 2 \times 10^6 \ 1≤m≤2×106进阶:空...原创 2022-03-05 22:02:13 · 902 阅读 · 0 评论 -
剑指 Offer 66. 构建乘积数组【分治、表格分区】--- Golang
问题:给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。示例:输入: [1,2,3,4,5]输出: [120,60,40,30,24]提示:所有元素乘积之和不会溢出 32 位整数a.length <= 100000方法一:分治【我的题解】思想:有两段数组,left和rig原创 2022-02-20 15:52:10 · 325 阅读 · 0 评论 -
题解:剑指 Offer 13. 机器人的运动范围【Golang】
题目地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输出:3示例 2:输原创 2021-12-12 22:39:50 · 95 阅读 · 0 评论 -
多种方法判断对称二叉树【Golang】
问题判断对称二叉树例如,二叉树[1,2,2,3,4,4,3] 是对称的。1/ \2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的:1/ \2 2\ \3 3方法一:递归【最优】递归检查:L 的 左子节点 和 R 的 右子节点 对称;L的 右子节点 和 R 的 左子节点 对称func isSymmetric(root *...原创 2021-12-04 16:30:58 · 546 阅读 · 0 评论 -
【代码实现】数学游戏:最后一个说30就输的数学游戏
游戏规则从1开始到30结束,两个人a和b轮流说一个数或者两个数,谁先开始都可以,最后一个说出30的人就输了。来源岳云鹏在某综艺玩过的一个游戏,看到那个视频之后,思考了一下其中的秘诀。并且分析了类似游戏的通用规律。分析过程分析:【1】如果某一次a说的是26或者25 26时,那么b:27, a:28 29;或者b:27 28, a:29;最终结果都是b输,则a一定说出26就可以赢了【2】为了保证a说25 26 或者 26,应该使b说23 24, 24, 24原创 2021-11-14 22:11:53 · 4465 阅读 · 0 评论 -
python——剑指 Offer 04. 二维数组中的查找
题目描述在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 tar...原创 2021-11-07 15:53:26 · 450 阅读 · 0 评论 -
python动态规划——打家劫舍
1 问题你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:原创 2021-08-12 10:17:47 · 340 阅读 · 0 评论 -
python求解连续子数组的最大和(暴力、动态规划、贪心、分治)
目录问题测试用例求解暴力1暴力2暴力3动态规划贪心算法分治问题给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]原创 2021-08-10 17:35:58 · 6785 阅读 · 0 评论 -
python实现平衡二叉树的基本操作(创建、遍历、打印)
目录平衡二叉树的主要操作AVL.pytree.pygithub:平衡二叉树的主要操作 """FUN0 初始化""" """FUN1 由无序数组创建平衡二叉树 """ """FUN2 向平衡二叉树添加节点 """ """FUN3 将二叉树恢复平衡""" """FUN4 计算每个结点的height""" """FUN5 计算每个结点的balance""" """FUN6 左旋""" """FUN7 右旋""" """原创 2021-07-25 21:30:32 · 927 阅读 · 1 评论 -
python打印一棵二叉树图形
为了便于刷leetcode测试自己写的函数,真实观察经过一些操作后树的变化,写了以下几个函数:FUN1 由数组创建一棵树 FUN2.3 层次遍历一棵树,以数组的形式返回遍历结果(完全二叉树,空结点-1补全), 用于绘制图形 FUN3 一棵树的最大深度 FUN4 打印一棵二叉树图形# tree.py"""二叉树数据结构"""class TreeNode: def __init__(self, val=-1): self.val = val sel原创 2021-07-17 14:49:41 · 1264 阅读 · 0 评论 -
字节跳动夏令营2021笔试题第二轮T3
题目大概描述:有一排座位和n个学生,每个学生依次挑选座位,每位同学不能挨着坐每个学生选取 所有连续空座位中最长的 入座入座时选取中间的位置,如果有两个都是中间的位置,选左边的满足n个学生的要求,求最少需要多少个座位?# 手动举例子# 1个学生 1个座位# 1# 2个学生 4个座位# 0101# 3 5# 10101# 4 8# 01010101# 5 11# 10100100101# 6 13# 1010101001010# 7 14# 101010101010.原创 2021-06-15 16:46:49 · 383 阅读 · 0 评论 -
字节跳动夏令营2021笔试题T3
一个公司为每一个员工买衣服,有D,E,F三种衣服,每一种衣服给员工i的开心值分别为Di,Ei,Fi,但是员工不愿意和他的直系boss衣服一样,求所有人开心值和的最大值输入:n,代表n个员工n行,第i行 为Di,Ei,Fi下面n-1行 每一行为 a b 代表a是b的直属boss样例输入:32 4 91 3 51 2 30 10 2样例输出:140号选F,1号选E,2号选E,9+3+2=14...原创 2021-06-15 16:34:09 · 1799 阅读 · 0 评论 -
leetcode简单题——两个数组的交集 II(python多方法解决)
"""给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。 我们可以不考虑输出结果的顺序。进阶: 如果给定的数组已经排好序呢?你将如何优化你的算法? 如果 nums1 的大小比 nu.原创 2021-05-05 22:47:07 · 388 阅读 · 0 评论 -
二分法解决 260. 只出现一次的数字 III(LeetCode算法题)
题目描述:给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?示例 1:输入:nums = [1,2,1,3,2,5]输出:[3,5]解释:[5, 3] 也是有效的答案。示例 2:输入:nums = [-1,0]输出:[-1,0]示例 3:输入:nums = [0,1]输出:[1,0]提示: 2..原创 2021-04-10 22:49:31 · 404 阅读 · 4 评论 -
随机重爬算法——处理百万皇后问题
N皇后(1000~1000000)。1.要求:任意输入一个整数N, 103 £ N £ 106。 在普通个人计算机上,对输入N,3分钟内给出一个皇后不冲突的方案。 输出到磁盘。保存输出文件名为“N.txt”。N.txt用32位无符号整数的二进制存储,数值范围从0 ~ N-1;统一用大端(Big-Endian)。 提供独立的检验程序和代码,检验所输出文本文件中的皇后是否冲突。2....原创 2019-06-05 19:32:59 · 843 阅读 · 0 评论