![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Annie_0321
这个作者很懒,什么都没留下…
展开
-
2022.04.20华为笔试
严正声明:转载请注明出处!!!总结一下做题的过程:刚开始以为第一题很简单,因为忽略了一个很重要的条件,再去读题发现没注意到那个要点,然后开始重来,发现下不了笔,整个人都傻了。整个一大惨败,前一个小时根本没思路,一个小时后发现可以分情况考虑,但是当时又遇到了一个问题,就是不知道怎么去分是否要退出的情况,做完第一题剩下10几分钟,直接交卷了,麻了……题目描述:小聪入职新公司,参加线上的新员工必备考试,考试共25题,依次是10个判断题(每题2分)、10个单选题(每题4分)和5个多选题(每题8分),总分100分原创 2022-04-21 09:05:36 · 1237 阅读 · 5 评论 -
2022.03.30华为前端、后端算法第一题
严正声明:转载请注明出处!!!题目描述:一个业务芯片的容量为10G,可支持两种不同的业务类型A、B。芯片的约束如下:A业务容量为2.5G,一个芯片上最多可配置4路业务;B业务容量为10G,一个芯片上最多可配置1路业务;由于业务容量限制,配置了A业务后,该芯片就不能配置B业务;不能跨芯片占用资源,即业务只能配置在一块芯片上,不能占用一块芯片的容量,再占用另外芯片的容量;为了保证使用最少的芯片资源,业务配置时,按芯片编号从小到大顺序依次配置,并优先使用已占用的芯片。由于业务容原创 2022-03-30 21:31:22 · 977 阅读 · 0 评论 -
2022.03.30华为前端、后端算法第二题
题目描述有一张m*n的地图,地图描述了起点和终点的位置,也描述了两点间分布的高山湖泊,高山湖泊挡住去路,需要绕道行走,请问从起点到终点的最短路径有几条,距离时多少?注意:走动路线只能上下左右,不能斜着走。输入假设是5*5的地图,那么四个角的坐标表示为(0, 0), (0, 4), (4, 4), (4, 0);起点是(0, 1),终点是(3, 3)高山湖泊的个数:1高山湖泊的位置(2, 2)输入表示:5 5——图的大小是5 50 1——起点坐标3 3——终点坐标1——湖泊个数2 3原创 2022-03-30 21:30:38 · 752 阅读 · 0 评论 -
2022.03.27网易算法第四题
题目描述:小红来到了一片沼泽地的岸边,她希望通过这片沼泽地。这个沼泽地地图用一个矩阵进行表示。1代表沼泽,0代表平地,小红刚开始在矩阵的左上角,她需要从右下角离开地图。已知进入地图和离开地图的时间可以忽略。小红可以向左、向右或者向下走。当小红从沼泽进入沼泽,或者从平地进入平地时,需要花费1单位时间。当小红从沼泽进入平地,或者从平地进入沼泽时,由于需要换装备,所以要花2单位时间。小红可以从左上角进入地图,从右下角离开地图。小红想知道,经过这片沼泽地,最少需要花费多少单位时间。输入描述:第一行输原创 2022-03-27 21:18:05 · 1163 阅读 · 0 评论 -
2022.03.27网易算法第三题
题目描述:小红想构造一个总共n个节点的完全二叉树,该二叉树满足以下两个性质:所有节点的权值值为1~n的一个排列除了根节点以外,每个节点的权值和它父亲的权值的乘积为偶数。请你帮小红构造出这个二叉树,并按照层序遍历的方式打印所有的节点。输入描述:一个正整数n,代表二叉树的节点数量,2≤n≤10^5输出描述:输出一行n个正整数,代表小红构造的二叉树的层序遍历的序列。示例1:输入4输出2 4 3 1说明,这棵二叉树的结构如下:import java.util.Scanner;原创 2022-03-27 21:17:27 · 2258 阅读 · 0 评论 -
2022.03.27网易算法第二题
题目描述:小红拿到了一个字符串,她可以做任意以下操作:标记这个字符串两个位置相邻的字母,并且这两个字母必须满足以下条件才可以做标记:两个字母相同或者两个字母在字母表中相邻,小红可以获得这两个字母的分数。举个例子:'a’和’b’在字母表相邻,'t’和’s’在字母表相邻。我们规定,已经被标记的字母无法被重复标记。每个字符获得的分数是不同的,'a’可以获得1分,'b’可以获得2分,以此类推,'z’可以获得26分。输入描述:输入一行只包含小写字母的非空字符串s,代表小红拿到的字符串。1≤len(s)≤原创 2022-03-27 21:16:19 · 4402 阅读 · 0 评论 -
2022.03.27网易算法第一题
题目描述:小红在一个游戏里杀怪,这是个回合制的游戏,小红和两只怪物相遇了。第一只怪物有a血量,第二只怪物有b血量。小红有两个技能:第一个技能叫火球术,效果是对单体怪物造成x伤害第二个技能叫烈焰风暴,效果是对每只怪物造成y伤害小红想知道,自己最少使用多少次技能,可以击杀这两只怪物?(当怪物血量小于等于0·时,视为被击杀)输入描述:四个正整数a,b,x,y,用空格隔开。1≤a,b,x,y≤20输出描述:小红使用技能的最少次数示例1:输入5 2 3 1输出3import jav原创 2022-03-27 21:15:47 · 5340 阅读 · 2 评论 -
2022.03.24携程前端后端第四题(通过43%)
题目描述:游游拿到了一个n行m列的字母矩阵,矩阵中仅包含大小写字母。现在游游有q次操作,每次操作选择一个子矩阵,将其中所写字母大小写转换(大写变小写,小写变大写)请你输出游游所有操作结束后的矩阵。输入描述:第一行输入三个正整数n、m和q,用空格隔开,代表矩阵的行数、列数以及游游的操作次数。接下来的n行,每行输入一个长度为m的字符串,用来表示游游拿到的矩阵。接下来的q行,每行输入四个正整数 x1, y1, x2, y2,代表游游对左上角(x1, y1),右下角(x2, y2)的子矩阵进行一次操作原创 2022-03-24 22:10:55 · 1830 阅读 · 0 评论 -
2022.03.24携程后端前端第三题
题目描述:游游拿到了一个仅包含小写字母的字符串。游游想截取一段连续子串,需要保证孩子该子串不同的字母种类不超过k个。游游想知道,这个子串长度的最大值是多少?输入描述:第一行输入两个正整数n和k,分别代表字符串长度、需要保证的字母种类最大数量。第二行输入一个长度为n的,只包含小写字母的字符串。1 ≤ n ≤ 2000001 ≤ k ≤ 26输出描述:子串长度的最大值示例1:输入5 3aabcd输出4解法1:import java.util.HashMap;import ja原创 2022-03-24 21:54:48 · 1931 阅读 · 0 评论 -
2022.03.24携程后端前端第二题
题目描述:游游拿到一个01串(仅由字符’0’和’1’构成的字符串)。游游每次操作可以选择对其中一个字符取反(即1变0,0变1),对第i个字符取反的代价为i。(代价从1开始计算,即第一个字母的代价是1)游游希望最终字符串任意两个相邻的字符都不相同,她想知道花费代价之和的最小值是多少?输入描述:一行仅由‘0’、'1’组成的字符串,长度不超过100000。输出描述:一个整数,代表代价之和的最小值。示例1:输入:11101输出2说明:把第二个字母取反,代价为2。字符串变成10101。示例原创 2022-03-24 21:44:00 · 3243 阅读 · 0 评论 -
2022.03.24携程后端前端第一题
题目描述:游游拿到了一个正整数x,她希望在x中添加一个数字,使它成为7的倍数,你能帮帮她吗?输入描述:一个正整数x1≤x小于等于10^9输出描述:x添加一个数字后形成的数。请务必保证操作的合法性,且一定是7的倍数。如果有多个解,是输出任意一个合法解。可以证明,至少存在一个正确答案。实例1:输入1输出21说明在前面添加一个2即可实例2:输入15输出105说明在1和5的中间添加一个0。105 = 15 * 7,合法。另外,315、154等答案也是合法的import ja原创 2022-03-24 21:33:40 · 1333 阅读 · 0 评论 -
2022.03.20字节前端第二题
题目描述:小明想从A徒步到B,总路程需要M天,路程中为了确保安全,小明需要每天消耗1份食物。在起点及路程当中,零星分布着N个补给站,可以补充食物,不同补给站的食物价格可能不同。请问小明若要安全完成徒步,最少需要花费多少钱呢?输入描述:第一行为两个正整数M、N,代表总路程M天,补给站个数N接下来N行,每行有两个非负整数A、B代表一个补给站,表示第A天经过该补给站,每份食物的价格为B袁。A是从0开始严格递增的,即起点一定有补给站,补给站是按位置顺序给出的,且同一个位置最多有一个补给站。输出描述:原创 2022-03-20 12:27:20 · 734 阅读 · 0 评论 -
2022.03.20字节前端第一题
题目描述:我们约定“模糊回文字符串”的定义如下:对于一个含有英文字母的字符串,如果满足读取规则:读的时候字母不区分大小写;非字母字符均当作同一字符“*”读取;若从左往右读和从右往左读是一样的,那么就称之为模糊会问字符串。例如,“a#&A”、“a+b-a”、“abA”、"ab(%BA)"均属于模糊回文字符串。现给定一个含有字母的字符串s,请编写一个函数判断字符串s经过有限次的字符位置调整后能否变成一个模糊回文字符串,若可以则返回true,不可以则返回false。输入描述:输入一个含原创 2022-03-20 12:26:00 · 306 阅读 · 0 评论 -
2022.03.19京东算法第二题建造规划
严正声明:转载请注明出处!!!建造规划题目描述:小明在玩一款建造类的游戏。他需要为一段未开荒的地段设计路段的规划,以便起重机通过。游戏里每段路径都有能承重的级别,小明现在希望尽可能让能承受更大的起重机通过,这样他就可以比较快地完成建造了。游戏规定小明只能选一种起重机机型,小明想知道这个起重机最高的承重级别应该是多少,使得在该承重条件下,起重机可以从任何一个点出发去向任何一个点而不会损坏道路(损坏道路指的是路段上行驶了超过承重能力的起重机)。为了方便,我们将需要规划的建造点抽象成N个点,有M条边将原创 2022-03-19 21:20:22 · 3250 阅读 · 0 评论 -
2022.03.19京东算法第一题攻城计
严正声明:转载请注明出处!!!攻城计题目描述:小气正在玩一款名为“攻城计”的策略游戏。现在,小七正在率领自己的军队攻打一座城池。通过一段时间的游玩,小七的军队目前有a辆坦克。而“攻城计”是一个回合制游戏,一个回合如下:小七的军队中的每辆坦克攻击锁选择的一座碉堡。这座碉堡损失一点生命值。当一座碉堡失去所有的生命值时,它就被摧毁了。小七可以为每辆坦克独立选择碉堡。小七的对手进攻。炸毁k*c辆坦克,其中:k是剩余的碉堡的数量,每个碉堡可以炸毁c辆坦克。通过侦察兵,小七探明了敌情:战场上有d座原创 2022-03-19 21:19:06 · 4132 阅读 · 0 评论 -
小红书2020校招第7题
题目描述:薯队长写了一篇笔记草稿,请你帮忙输出最后内容。输入字符包括,"(" , “)” 和 "<"和其他字符。其他字符表示笔记内容。()之间表示注释内容,任何字符都无效。 括号保证成对出现。"<“表示退格, 删去前面一个笔记内容字符。括号不受”<"影响。输入描述:输入一行字符串。长度<=10000.输出描述:输出一行字符串,表示最终的笔记内容。输入例子:Corona(Trump)USA<<<Virus原创 2022-03-19 09:44:34 · 237 阅读 · 0 评论 -
2021阿里巴巴编程题(4星)第二题
题目描述:小强发现现当已知xy=Bxy = Bxy=B以及x+y=Ax + y = Ax+y=A时,能够很轻易地算出x2+y2x^2 + y^2x2+y2的值。但小强想请你在已知AAA和BBB的情况下,计算出xn+ynx^n + y^nxn+yn的值,因为这个结果可能很大,所以所有的运算都在模1e9+7下进行。输入描述:第一行输入一个正整数T.表示有T组数据,接下来T行,每行输入三个整数A, B和n1≤T≤1000≤A, B<1e9+71≤n≤1e5输出描述:输出T行,每一行表示没组数据的结原创 2022-03-15 11:00:04 · 623 阅读 · 0 评论 -
2022.3.14阿里笔试第一题
题目描述:小红拿到了一个16进制数,她想知道该数转为二进制以后有多少个1?输入描述:一个字符串,用来表示16进制数。一定是0x开头,从第三个字符开始,每个字符一定是’0’-‘9’或者’a’-‘f’,字符串的长度不超过20000。输出描述:该16进制转为二进制后1的个数。示例1:输入:0x3f输出:6说明:该16进制的值是63,转化为二进制后有6个1示例2:输入:0xeeeeedddddccccc11111输出:45我是这样写的,欢迎其他有更好的方式的大佬补充……原创 2022-03-14 21:08:06 · 1129 阅读 · 4 评论 -
2022.3.14阿里笔试第二题
小红拿到一个n行m列的矩阵,矩阵种用1表示人,0表示聚光灯,每个聚光灯可以朝着上、下、左、右四个方向照射(照射的距离是无穷大的),若是一个方向上至少有一个人,那么小红就获得了1分。输入描述:第一行两个整数n, m(1≤n,m≤103^33)接下来m行,每行m个整数ai,j_{i,j}i,j,用来表示矩阵中的位置是人还是聚光灯(0≤ai,j_{i,j}i,j≤1)。输出描述:输出一行,一个整数表示这些灯的分数的总和。测试案例1:2 40 1 0 01 0 1 0输出:9说明:原创 2022-03-14 20:52:48 · 874 阅读 · 4 评论 -
字节跳动2019春招研发部分编程题第6题
题目描述:Z国的货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小Y使用1024元的纸币购买了一件价值为的商品,请问最少他会收到多少硬币?输入描述:一行,包含一个数N。输出描述:一行,包含一个数,表示最少收到的硬币数。输入例子:200输出例子:17例子说明:花200,需要找零824块,找12个64元硬币,3个16元硬币,2个4元硬币即可。拿到这道题,我估计大多数人都笑了,一个字,简单……于是我就上手了import java.util.Scan原创 2022-03-13 16:50:53 · 235 阅读 · 0 评论 -
2022.3.12美团笔试避开炸弹
题目描述:小美在打音游,这个音游的玩法是这样的:——共有n个房间.小美初始拥有一个指针,指在一号房间。——游戏共持续m秒,每秒会有一个房间产生炸弹,小美的指针不能在这个房间中。——每秒结束的瞬间,小美可以使用一次算法,把指针切换到另一个房间中,该过程会消耗一个能量。你的任务是计算小美无伤通过音游所需要的消耗的最小能量。保证每一秒的炸弹都不在一号房间中。输入描述:第一行两个正整数n和m,表示房间有n个,游戏持续m秒。第二行m个正整数,每个正整数在1-n的范围内,第i个正整数表示第i秒时炸弹在原创 2022-03-13 16:45:40 · 4738 阅读 · 0 评论 -
Leetcode 40 组合总和Ⅱ
题目描述:给定一个候选人编号的集合 candidates 和一个目标数target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates中的每个数字在每个组合中只能使用 一次 。注意:解集不能包含重复的组合。测试用例1:输入: candidates = [10,1,2,7,6,1,5], target = 8,输出:[[1,1,6],[1,2,5],[1,7],[2,6]]测试用例2:输入: candidates = [2,5,2,1,转载 2022-03-09 20:55:36 · 135 阅读 · 0 评论 -
回溯算法解题套路框架
解决一个回溯问题,实际上就是一个决策树的遍历过程。只需要考虑如下三个问题:路径:即已经做出的选择选择列表:即当前可以做的选择结束条件:即到达决策树底层,无法再做出选择的条件。回溯算法代码框架:result = []def backtrack(路径,选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径,选择列表) 撤销选择 例题:N皇后问题N皇后问题是一个回溯算法的经典原创 2022-01-05 19:25:46 · 603 阅读 · 0 评论 -
动态规划问题解题套路框架
一般形式:求最值核心问题:穷举动态规划三要素:重叠子问题:暴力穷举会降低效率,需要备忘录或者DP table来优化穷举过程。最优子结构:通过子问题的最值得到原问题的最值。(子问题间必须相互独立、互不干扰)状态转移方程:只有列出正确的状态转移方程才能正确穷举。(最难、最关键)要写出正确的状态转移方程,需要考虑以下几点:这个问题的base case(最简单的情况)是什么?这个问题有什么状态?对于每个状态,可以做出什么选择使得状态发生改变?如何定义dp数组 / 函数的含义来表现状态和选择原创 2021-11-14 14:48:21 · 324 阅读 · 0 评论 -
Leetcode141 环形链表
试题来源:https://leetcode-cn.com/problems/linked-list-cycle给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶转载 2021-11-14 09:04:25 · 102 阅读 · 0 评论 -
NC145 01背包 Java
输入:10,2,[[1,3],[10,4]]返回值:4说明:第一个物品的体积为1,重量为3,第二个物品的体积为10,重量为4。只取第二个物品可以达到最优方案,取物重量为4动态规划算法import java.util.*;public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算01背包问题的结果 * @param V int整型 背包的体积 * @param .原创 2021-10-05 21:43:41 · 96 阅读 · 0 评论 -
NC80 把二叉树打印成多行 Java
描述给定一个节点数为 n 二叉树,要求从上到下按层打印二叉树的 val 值,同一层结点从左至右输出。每一层输出一行。例如:给定的二叉树是{1,2,3,#,#,4,5}该二叉树多行打印层序遍历的结果是[[1],[2,3],[4,5]]示例1输入:{1,2,3,#,#,4,5}返回值:[[1],[2,3],[4,5]]示例2输入:{8,6,10,5,7,9,11}返回值:[[8],[6,10],[5,7,9,11]]示例3输入:{1,2,3,4,5}返回值:[[1],[2,原创 2021-10-05 16:54:40 · 104 阅读 · 0 评论 -
NC118 数组中的逆序对 Java
看题:一看,多简单,上手就是写,暴力盘它:public class Solution { public int InversePairs(int [] array) { int count = 0; for(int i = 0;i < array.length;i++){ for(int j = i + 1;j < array.length;j++){ if(array[j] < arra原创 2021-10-04 16:28:45 · 150 阅读 · 0 评论 -
NC102 在二叉树中找到两个节点的最近公共祖先 Java算法
描述给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */public class Solution { /** * * @param roo原创 2021-10-03 19:27:10 · 173 阅读 · 0 评论 -
NC111 最大数
描述给定一个nums数组由一些非负整数组成,现需要将他们进行排列并拼接,每个数不可拆分,使得最后的结果最大,返回值需要是string类型,否则可能会溢出示例1输入:[30, 1]返回值:"301"示例2输入:[2, 20, 23, 4, 8]返回值:"8423220"示例3输入:[2]返回值:"2"提示输出的结果可能非常大,所以你需要返回一个字符串而不是整数刚开始拿到这个算法,乍一看很简单,就是按第一位数排序,相同时按第二个,依次类推。但是在提交的时候遇到了一个问题,如果单原创 2021-09-06 20:20:54 · 376 阅读 · 0 评论 -
NC8 二叉树根节点到叶子节点和为指定值的路径 DFS求解
描述给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径,例如:给出如下的二叉树 sum=22,示例1输入:{1,2},1返回值:[]示例2输入:{1,2},3返回值:[[1,2]]BFS解答:import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; *原创 2021-08-28 20:23:29 · 141 阅读 · 0 评论 -
动态规划刷题NC19
描述给定一个数组arr,返回子数组的最大累加和例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.题目保证没有全为负数的数据[要求]时间复杂度为O(n)O(n),空间复杂度为O(1)O(1)示例1输入:[1, -2, 3, 5, -2, 6, -1]返回值:12解答:import java.util.*;public class Solution { /** * max s原创 2021-08-27 19:10:04 · 152 阅读 · 0 评论 -
Leetcode 5 最长回文子串
题目描述:给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成来源:力扣(LeetCode)链接:https://leetcode-cn.com原创 2021-07-19 15:29:28 · 189 阅读 · 1 评论