ai因思坦
10+年互联网大厂经验,精通JAVA、Python、C++等,乐于分享面试经验。
展开
-
小明周末爬山
3. BFS 特性:广度优先搜索可以保证,**第一个到达某个位置的路径就是最短路径,因为 BFS 是层层扩展的,每层的节点都是从上层节点扩展过来的。周末小明准备去爬山锻炼,0代表平地,山的高度使用1到9来表示,小明每次吧山或下山高度只能相差k及K以内,每次只能上下左右一个方向上移动一格,小明从左上角(0,0)位置出发。根据山地图可知,能爬到的最高峰在(0,2)位置,高度为2,最短路径为(0,0)-(0,1)-(0,2),最短步数为2。请问小明能爬到的最高峰多高,到该最高峰的最短步数,输出以空格分隔。原创 2025-03-09 16:30:00 · 75 阅读 · 0 评论 -
字符串化繁为简-Java
输入字符串为"never(dont)give(run)up(f)()",初始等效字符集合为('d','o','n','t')、('r','u','n'),由于等效关系可以传递,因此最终等效字符集合为(''d','o','n','t','r','u'),将输入字符串里的剩余部分按字典序最小的等效字符替换后得到"devedgivedp。等效字符集为('a','A','b'),输入字符里没有被小括号包含的子字符串集合为"abcdefgAC",将其中字符替换为字典序最小的等效字符后输出为:"AAcdefgAC"原创 2025-03-06 15:52:53 · 184 阅读 · 0 评论 -
太阳能板最大面积-Java
给航天器一侧加装长方形或正方形的太阳能板(图中的红色斜线区域),需要先安装两个支柱(图中的黑色竖条),再在支柱的中间部分固定太阳能板。给定一组支柱高度,任取两根支柱能形成一个矩形区域,该区域的面积由两根支柱中较矮的一根的高度乘以两者之间的距离决定。指针移动策略:为了可能获得更大的面积,移动较矮那一侧的指针(因为较矮支柱决定了当前的高度,只有找到更高的支柱才能增大面积)。现提供一组整形数组的支柱高度数据,假设每根支柱间距离相等为1个单位长度,计算如何选择两根支柱可以使太阳能板的面积最大。原创 2025-02-24 09:56:43 · 110 阅读 · 0 评论 -
学生方阵-Java
请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。- 对于每一个元素 matrix[i][j],如果它是男生('M'),则检查从该点开始的四个方向上的连续男生的数量。- 从当前元素 (i, j) 出发,根据四个方向向量,检查在这些方向上的下一个元素是否也是男生('M')。- 反对角线方向:dx = [1], dy = [-1](增加行索引,减少列索引)- 如果当前方向上的男生数量超过了之前记录的最大值,则更新 maxCount。原创 2025-02-23 14:49:57 · 81 阅读 · 0 评论 -
云短信平台优惠活动-Java
第二行给出售价表,P1,P2...Pn, 其中 1<=n<=100,Pi为充值i元获得的短信条数。题目要求在给定的预算内,购买尽可能多的短信条数。每个价格对应不同的短信条数,目标是通过选择合适的套餐,获得最多的短信。遍历每个套餐价格,更新 dp 数组,确保每次选择可以带来最多短信条数的套餐。定义一个数组 dp[i],表示在预算为 i 元时,最多能购买的短信条数。现在给出客户预算,和优惠售价序列,求最多可获得的短信总条数。分两次充值最优,1元、5元各充一次。原创 2025-02-22 18:06:42 · 75 阅读 · 0 评论 -
寻找链表的中间节点-Java
题目给出了链表的首结点地址和每个结点的信息(地址、数据、下一结点的地址),因此我们需要通过这些信息来重建链表并找到中间结点。- 使用哈希表(字典)来存储每个结点的信息,键是结点的地址,值是一个包含该地址对应的 Data 和 Next 的元组。给定一个单链表QL,请编写程序输出L中间结点保存的数据,如果有两个中间结点,则输出第二个中间结点保存的数据。其中Address是结点地址,Data是该结点保存的整数数据(0≤Data≤10^8),Next是下一结点的地址。- 通过链表结点的数量可以找到中间结点的位置。原创 2025-02-20 16:35:36 · 229 阅读 · 0 评论 -
吃蟠桃--
孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有N颗桃树,每颗树上都有桃子,守卫将在H小时后回来。孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉K个,如果树上的桃子少于K个,则全部吃掉,并且这一小时剩余的时间里不再吃桃。孙悟空喜欢慢慢吃,但又想在守卫回来前吃完桃子。请返回孙悟空可以在H小时内吃掉所有桃子的最小速度K(K为整数)。如果以任何速度都吃不完所有桃子,则返回0。第一行输入为N个数字,N表示桃树的数量,这N个数字表示每棵桃树上蟠桃的数量。原创 2024-09-02 11:27:52 · 2489 阅读 · 0 评论 -
执行时长;
为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务,假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成。第一个参数为GPU一次最多执行的任务个数,取值范围[1, 10000]第二个参数为任务数组长度,取值范围[1, 10000]第三个参数为任务数组,数字范围[1, 10000]一次最多执行3个任务,最少耗时6s。一次最多执行4个任务,最少耗时5s。解题思路:考察数组。原创 2024-01-24 15:32:50 · 4185 阅读 · 4 评论