笔试
Jessie_YYY
这个作者很懒,什么都没留下…
展开
-
笔试-字符串子串的值为22的倍数,求这样的子串的个数
美团笔试0911 第一题。题目给一个字符串,其中有一些子串代表的数字为22的倍数,求这样的子串的个数。解法:原理:把整个字符串从右往左遍历,记录从最右边开始的一位数、两位数、三位数...的余数。余数的值重复的次数就是满足题目条件的子串数。例如:对字符串‘12221’,满足题目条件的子串个数为2。从最右边开始,也就是从个位数开始:1%22=1,21%22=21,221%22=1,2221%22=21,12221%22=11.在遍历过程中,余数的值重复了两次,原创 2021-09-12 22:26:42 · 488 阅读 · 0 评论 -
最小的k个数&寻找第K大
### 题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。### 解法默写快排import java.util.ArrayList;public class Solution { public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { ArrayList<Integer> r原创 2021-02-19 23:36:59 · 116 阅读 · 0 评论 -
数组子集之和中的最小值-java
题目描述一个无序数组,元素有正数有负数,找出连续子串中元素之和最小的值。例:输入 1 2 3 4 -6 5 -9,返回-10,因为使元素和最小的连续子串是{-6,5,-9}。解法用前缀和,找到使前缀和数组值下降的第一个元素,这个元素肯定是个负数,找到它的左子集中最大的元素,与当前位置的前缀和相减。就是当前位置下,子串元素和的最小值。例如,对例子中的数组与其下标对应为01234561234-65-9前缀和数组sum[]为01234原创 2021-04-10 15:54:54 · 393 阅读 · 0 评论 -
消除数组中相邻的和为10的元素-JAVA
题目描述美团笔试,消除数组中相邻的,和为10的一对元素,返回消去这些元素后的数组长度。例如数组2198,消除之后数组空了,长度为0;数组2198346,消除之后还剩3,长度为1解法用栈存储不符合相邻和为10的元素。遍历原数组,如果栈顶和当前遍历到的元素之和为10,则出栈,否则入栈。完整代码:/*美团0404笔试 * 消除数组中相邻的和为10的元素 */public class Eleminatesum10 { public static int eliminate10(int[] ar原创 2021-04-06 20:27:45 · 428 阅读 · 0 评论 -
数组/字符串不连续的满足某条件的最长/最短子集-回溯法-JAVA实现
题目描述这一类题目包括了如下一堆题目:1. 字符串、数组的全排列(leetcode 46 给定一个 没有重复 数字的序列,返回其所有可能的全排列)2. 字符串、数组的去重的/不去重的全组合;3. 数组的最短子集,该子集所有元素之和为给定的K的倍数4. 数组的最长子集,该子集所有元素之和为给定的K的倍数上述题目都用到了回溯法解法1. 字符串、数组的全排列看力扣上的题解,思路是:数组长度为N,遍历每一位元素,将第i(0=<i<N)个元素固定到首位,剩下的N-1个元素递归调用该函数原创 2021-04-05 22:28:17 · 448 阅读 · 0 评论 -
java生产者消费者模型-要求:消费队列有界,消费队列满时,生产者暂停,否则继续生成
我阿里笔试零分,所以面试期间又加了一次笔试,用伯乐在线测评做的。题目描述生产者消费者模型。要求:消费线程5个,生成线程5个,消费队列有界,消费队列满时,生产者暂停,否则继续生成。《java编程思想》上有生产者消费者模型的范例代码,并且完完全全符合这道题的“消费队列有界”的要求,而且还很简洁易懂。我就照搬了。它用的是阻塞队列BlockingQueue,可以指定队列的容量。它的源码用到了ReentrantLock。可以实现:当队列满了的时候put()会阻塞,等着直到有空位;当队列空的时候take()也原创 2021-03-25 20:27:30 · 245 阅读 · 0 评论 -
01矩阵从左上角走到左下角是否有路径-递归算法java实现
题目描述一个元素值要么0,要么1的矩阵,假设0是断路,1是通路,从左上角元素开始,向右或者向下走,走到右下角。判断能不能走到,如果能,路径长度是多少?便利蜂开发岗3.20笔试第三道算法题思路这道题我百度居然没有找到现成的答案,逼着我自己想。首先想到的是动态规划求最短路径可以先将01矩阵中的所有0元素替换成一个超大的数(例如106),然后照搬动态规划求最短路径,如果路径大于106,说明没有通路。但是这个方法也太别扭了,像睿智想出来的。重新想的思路这道题复杂度应该是比求最短路径要低的,因为只要原创 2021-03-20 18:05:32 · 505 阅读 · 0 评论 -
笔试算法题:把两个链表的数字相加,然后存进一个链表
题目有两个链表表示两个非负整数,每个链表的开始位置是数字的最高位,且链表每个节点只存储一位数字,求两个链表表示整数的和,结果也用同样的链表表示。例:链表一 : 8->5->7->3->8 表示 85738链表二 : 5->7->3->5->4 表示 57354返回结果链表:1->4->3->0->9->2要求1、 用注释写清楚思路、变量;先在当前页面书写代码,写完后可以在本地工具进行调试。(最后的代码能run起来原创 2021-03-04 22:01:53 · 260 阅读 · 1 评论