1. 首页 > 姓名学 > 文章页面

阿里算法平台起名?中国取名一般用什么算法来定(阿里云算法平台)

各位老铁们,大家好,今天由我来为大家分享阿里算法平台起名,以及中国取名一般用什么算法来定的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

阿里面试官:恕我直言,搞懂这10道算法题,轻松拿20K不是问题阿里面试算法题合集一阿里面试官:恕我直言,搞懂这10道算法题,轻松拿20K不是问题

01打怪兽

难度:容易

现在有3只怪兽,他们的都有自己的血量a,b,c(1<=a,b,c<=100),当Tom打死第一怪兽的时候花费的代价为0,其余的怪兽的代价为当前的怪兽的血量减去上一个怪兽的血量的绝对值。问Tom打死这些怪兽所需要的最小代价

02数组变换

难度:中等

给出一个长度为 n的数组,和一个正整数 d。你每次可以选择其中任意一个元素 a[i]将其变为 a[i]+ d或 a[i]- d,这算作一次操作。你需要将所有的元素全部变成相等元素,如果有解,请输出最小操作次数,如果无解请输出-1。

01超级区间

难度:中等

Tom现在有一个长度为n的数组,Jerry给Tom定义了一种超级区间,如果区间[l,r]满足(a[l]+…+a[r])>=k,则区间[l,r]被称为超级区间,现在Jerry想让Tom告诉他数组中有多少个超级区间。

02能量半径

难度:中等

codancer来到了一个能量平面上的中心,坐标为(0,0),接下来巫师Tom会在q个坐标上放置能量点,每个能量点的能量值为1,为了打败哥斯拉,他需要至少k点的能量,因此他想确定一个最小的整数半径r使得codancer能够从这个圆心为(0,0),半径为r的圆形区域内得到至少k个能量值,请你帮他确定最小的整数半径r。

01找出二叉搜索树的第2大的数

难度:容易

给定一个二叉搜索树,找出其第二大的数。

02字符配对

难度:中等

给你一个字符串,字符串中仅包含"A","B",现在有四种字符串"AA","AB","BA","BB",每种字符串都有他们的权值,问从给出的字符串中能够得到的最大权值为多少(一个字符只能属于一个子字符串)?

01斐波那契字符串

难度:中等

Tom发现了一种神奇的字符串-斐波那契字符串,定义f[1]=0,f[2]=1,对于所有的i>2都有f[i]=f[i-2]+f[i-1],其中“+”代表拼接,比如01+10=0110,现在对于字符串f[n],请判断f[n]的第k项是0,还是1?

01Hikari and Interstellar Experience

难度:容易

在无垠的宇宙中,有 n个星球,第 i个星球有权值vi。由于星球之间距离极远,因此想在有限的时间内在星际间旅行,就必须要在星球间建立传送通道。任意两个星球之间均可以建立传送通道,不过花费并不一样。第 i个星球与第 j个星球的之间建立传送通道的花费是lowbit(vi⊕ vj),其中⊕为二进制异或,而lowbit(x)为 x二进制最低位的值,例如lowbit(5)= 1,lowbit(8)= 8。特殊地,lowbit(0)= 0。 Hikari想在这 n个星球间穿梭,于是――你需要告诉 Hikari,要使这 n个星球相互可达,需要的花费最少是多少?

02二进制字符串

难度:中等

Tom得到了一个二进制字符串s,即s只由'0'和'1'组成,现在令d(t)代表二进制字符串t在十进制下的值。那么d(“011”)=3,d(“0001000”)=4,如果t的长度等于d(t),那么就称t是奇妙串,现在Tom想知道s中有多少个子串是奇妙串?

01小明的数学作业

难度:容易

众所周知,小明是一个数学小能手,有一天数学老师给了小明一个长度为n(2<=n<=5000)的序列,其中第i个数是ai(0<=ai<=1e9),数学老师想知道这个序列排序后,其中最长的等差子序列的长度是多长,聪明的你能帮小明解决这个问题吗?

02Codancer上楼

codancer来到了一栋大楼前,现在他要上楼。

如果codancer从第x层走楼梯到第y层(y>x),那么他所花费的时间是a[x]+a[x+1]+…+a[y];

如果他从x层坐电梯到第y层,那么他所花费的时间是c+(b[x]+b[x+1]+…+b[y]),因为他等电梯的时间为c。

现在codancer想知道从第1层到第n层需要最少需要多长时间?

01变换的秘钥

难度:中等

Tom最开始有一个密钥s1,s1是长度为n的由小写字母组成的字符串。Jerry也有一个长度为n的由小写字母组成的密钥s2。现在有m组关系,每组关系由两个数字[u,v]构成(1<=u,v<=26),表示26个字母表中的第u个小写字母可以直接转换为第v个小写字母。假设u=1,v=2,那么说明字母'a'可以直接转换为字母'b'。现在Tom对于s1的每个字母使用无数次转换,请判断s1能否转换为s2?

01最大边权和

难度:简单

现在有n个点(1<=n<=1000),每个点都有一个值称为点权ai(ai为偶数,1<=ai<=1000),现在可以将任意两个点相连,连起来以后这条边也有一个值称为边权,这个边的边权为这两个点的点权之和的一半。现在需要你添加n-1条边,问将这n个点连通以后(连通是指任意两个点都能互相到达)的最大的边权和是多少?

02钱庄

难度:中等

钱庄每天能够收到很多散钱,第i个散钱的值2 wi。为了便于管理,钱庄每天都会向中央银行申请兑换钱币,假设钱庄有一些散钱使得2 k1+2 k2+...+2 km=2^x(x为非负整数),那么就可以将这些散钱兑换成一个大钱币,问在钱庄收到的这些散钱最终最少能变成几个钱币?

01codancer的旅行

难度:困难

期末考试终于结束啦,Codancer开始了他的旅行,现在整个地图上有n个城市,这些城市之间有n-1条道路相连,每条道路都有一个距离,并且保证整个图是连通的,即这个地图可以看作是一棵树,现在假设Codancer要从城市A到城市B,那么他的路费就是从A-B的路径上边权最大的边的权值wmaxx元。现在Codancer有k元,他想知道他能选择那些(A,B)并且A<B使得codancer能够到达?

HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。

01全奇数组

难度:中等

codancer现在有n个正整数a[1],a[2]…a[n],Tom告诉codancer他可以进行下列操作,选择某个偶数x,把这n个数中全部等于x的数字除2,Tom想知道把这n个数字全部变成奇数最少需要几次这样的操作?

以上十道算法题你都能搞定嘛?备战大厂每日刷一道算法题来提升自己,坚持坚持再坚持,必然会有收获。为大家整理一份781页的高分宝典,知识较为全面,可分享给想要学习提升自己的朋友。

领取方式:私信【面试宝典】或点击右方链接: shimo.im/docs/QVy8HrQgPYkx9Ddg/即可免费领取,喜欢本文不妨关注+转发支持一下~~

阿里面试算法题合集一

0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。

例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。

示例 1:

输入: n= 5, m= 3

输出: 3

示例 2:

输入: n= 10, m= 17

输出: 2

请实现一个函数,输入一个整数,输出该数二进制表示中 1的个数。例如,把 9表示成二进制是 1001,有 2位是 1。因此,如果输入 9,则该函数输出 2。

示例 1:

输入:00000000000000000000000000001011

输出:3

解释:输入的二进制串 00000000000000000000000000001011中,共有三位为'1'。

数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。

请写一个函数,求任意第n位对应的数字。

示例 1:

输入:n= 3

输出:3

示例 2:

输入:n= 11

输出:0

注意这里必须是long类型

输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。

示例 1:

输入: [10,2]

输出:"102"

示例 2:

输入: [3,30,34,5,9]

输出:"3033459"

老师想给孩子们分发糖果,有 N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。

你需要按照以下要求,帮助老师给这些孩子分发糖果:

每个孩子至少分配到 1个糖果。

相邻的孩子中,评分高的孩子必须获得更多的糖果。

那么这样下来,老师至少需要准备多少颗糖果呢?

示例 1:

输入: [1,0,2]

输出: 5

解释:你可以分别给这三个孩子分发 2、1、2颗糖果。

示例 2:

输入: [1,2,2]

输出: 4

解释:你可以分别给这三个孩子分发 1、2、1颗糖果。

第三个孩子只得到 1颗糖果,这已满足上述两个条件。

在一条环路上有 N个加油站,其中第 i个加油站有汽油 gas[i]升。

你有一辆油箱容量无限的的汽车,从第 i个加油站开往第 i+1个加油站需要消耗汽油 cost[i]升。你从其中的一个加油站出发,开始时油箱为空。

如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回-1。

说明:

如果题目有解,该答案即为唯一答案。

输入数组均为非空数组,且长度相同。

输入数组中的元素均为非负数。

示例 1:

输入:

gas= [1,2,3,4,5]

cost= [3,4,5,1,2]

输出: 3

贪心的思路是,只要总和大于0就可以绕一圈,

开始位置的贪心思路是,如果从刚开始sum小于0,一定不是从之前开始,而是从当前下一个位置,sum= 0清空

给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

示例:

输入: [2,3,1,1,4]

输出: 2

解释:跳到最后一个位置的最小跳跃数是 2。

从下标为 0跳到下标为 1的位置,跳 1步,然后跳 3步到达数组的最后一个位置。

给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个位置。

示例 1:

输入: [2,3,1,1,4]

输出: true

解释:我们可以先跳 1步,从位置 0到达位置 1,然后再从位置 1跳 3步到达最后一个位置。

一条包含字母 A-Z的消息通过以下方式进行了编码:

'A'-> 1

'B'-> 2

...

'Z'-> 26

给定一个只包含数字的非空字符串,请计算解码方法的总数。

示例 1:

输入:"12"

输出: 2

解释:它可以解码为"AB"(1 2)或者"L"(12)。

这里一定注意第一个数为0的情况,s.charAt(0)=='0'第一个为0要直接返回0才行

给定一个数组,它的第 i个元素是一支给定股票第 i天的价格。

如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。

注意:你不能在买入股票前卖出股票。

示例 1:

输入: [7,1,5,3,6,4]

输出: 5

解释:在第 2天(股票价格= 1)的时候买入,在第 5天(股票价格= 6)的时候卖出,最大利润= 6-1= 5。

注意利润不能是 7-1= 6,因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

给定三个字符串 s1, s2, s3,验证 s3是否是由 s1和 s2交错组成的。

示例 1:

输入: s1="aabcc", s2="dbbca", s3="aadbbcbcac"

输出: true

给你一个字符串 s和一个字符规律 p,请你来实现一个支持'.'和'*'的正则表达式匹配。

'.'匹配任意单个字符

'*'匹配零个或多个前面的那一个元素

所谓匹配,是要涵盖整个字符串 s的,而不是部分字符串。

说明:

s可能为空,且只包含从 a-z的小写字母。

p可能为空,且只包含从 a-z的小写字母,以及字符.和*。

示例 1:

输入:

s="aa"

p="a"

输出: false

解释:"a"无法匹配"aa"整个字符串。

给定一个整数矩阵,找出最长递增路径的长度。

对于每个单元格,你可以往上,下,左,右四个方向移动。你不能在对角线方向上移动或移动到边界外(即不允许环绕)。

示例 1:

输入: nums=

[

[9,9,4],

[6,6,8],

[2,1,1]

]

输出: 4

解释:最长递增路径为 [1, 2, 6, 9]。

使用带记忆的可以避免超时

使用动态规划解题

给出一个由无重复的正整数组成的集合,找出其中最大的整除子集,子集中任意一对(Si,Sj)都要满足:Si% Sj= 0或 Sj% Si= 0。

如果有多个目标子集,返回其中任何一个均可。

示例 1:

输入: [1,2,3]

输出: [1,2](当然, [1,3]也正确)

给定一些标记了宽度和高度的信封,宽度和高度以整数对形式(w, h)出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。

请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。

说明:

不允许旋转信封。

示例:

输入: envelopes= [[5,4],[6,4],[6,7],[2,3]]

输出: 3

解释:最多信封的个数为 3,组合为: [2,3]=> [5,4]=> [6,7]。

标准的动态规划

一只青蛙想要过河。假定河流被等分为 x个单元格,并且在每一个单元格内都有可能放有一石子(也有可能没有)。青蛙可以跳上石头,但是不可以跳入水中。

给定石子的位置列表(用单元格序号升序表示),请判定青蛙能否成功过河(即能否在最后一步跳至最后一个石子上)。开始时,青蛙默认已站在第一个石子上,并可以假定它第一步只能跳跃一个单位(即只能从单元格1跳至单元格2)。

如果青蛙上一步跳跃了 k个单位,那么它接下来的跳跃距离只能选择为 k- 1、k或 k+ 1个单位。另请注意,青蛙只能向前方(终点的方向)跳跃。

请注意:

石子的数量≥ 2且< 1100;

每一个石子的位置序号都是一个非负整数,且其< 231;

第一个石子的位置永远是0。

示例 1:

[0,1,3,5,6,8,12,17]

true

使用数组+链表枚举所有的可能

给你两个单词 word1和 word2,请你计算出将 word1转换成 word2所使用的最少操作数。

你可以对一个单词进行如下三种操作:

插入一个字符

删除一个字符

替换一个字符

示例 1:

输入:word1="horse", word2="ros"

输出:3

解释:

horse-> rorse(将'h'替换为'r')

rorse-> rose(删除'r')

rose-> ros(删除'e')

给定不同面额的硬币 coins和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。

示例 1:

输入: coins= [1, 2, 5], amount= 11

输出: 3

解释: 11= 5+ 5+ 1

示例 2:

输入: coins= [2], amount= 3

输出:-1

给定一个字符串 s,找到 s中最长的回文子串。你可以假设 s的最大长度为 1000。

示例 1:

输入:"babad"

输出:"bab"

注意:"aba"也是一个有效答案。

给定一个字符串 S和一个字符串 T,计算在 S的子序列中 T出现的个数。

一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE"是"ABCDE"的一个子序列,而"AEC"不是)

题目数据保证答案符合 32位带符号整数范围。

示例 1:

输入:S="rabbbit", T="rabbit"

输出:3

给定一个无序的整数数组,找到其中最长上升子序列的长度。

示例:

输入: [10,9,2,5,3,7,101,18]

输出: 4

使用二分查询

在一个由 0和 1组成的二维矩阵内,找到只包含 1的最大正方形,并返回其面积。

示例:

输入:

1 0 1 0 0

1 0 1 1 1

1 1 1 1 1

1 0 0 1 0

输出: 4

给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16,...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。

示例 1:

输入: n= 12

输出: 3

解释: 12= 4+ 4+ 4.

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一夜之内能够偷窃到的最高金额。

示例 1:

输入:[1,2,3,1]

输出:4

你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。

示例 1:

输入: [2,3,2]

输出: 3

思路是忽略第一个求一个结果,忽略最后一个求一个结果,只要一个时一个结果

//可以使用rangeCopy将其放入一个函数中求解

给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。

相邻的结点在这里指的是下标与上一层结点下标相同或者等于上一层结点下标+ 1的两个结点。

例如,给定三角形:

[

[2],

[3,4],

[6,5,7],

[4,1,8,3]

]

自顶向下的最小路径和为 11(即,2+ 3+ 5+ 1= 11)。

给定一个包含非负整数的 m x n网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

示例:

输入:

[

[1,3,1],

[1,5,1],

[4,2,1]

]

输出: 7

一个机器人位于一个 m x n网格的左上角(起始点在下图中标记为“Start”)。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。

现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?

示例 1:

输入:

[

[0,0,0],

[0,1,0],

[0,0,0]

]

输出: 2

一个机器人位于一个 m x n网格的左上角(起始点在下图中标记为“Start”)。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。

问总共有多少条不同的路径?

假设你正在爬楼梯。需要 n阶你才能到达楼顶。

每次你可以爬 1或 2个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n是一个正整数。

示例 1:

输入: 2

输出: 2

好了,文章到这里就结束啦,如果本次分享的阿里算法平台起名和中国取名一般用什么算法来定问题对您有所帮助,还望关注下本站哦!

联系我们

Q Q:

微信号:

工作日:9:30-18:30,节假日休息

微信