
算法
miao-hu
这个作者很懒,什么都没留下…
展开
-
【字节面试题】字符串中由字母组成的子串反转,其他字符原样输出
题目:给定一个字符串 求:字符串中由字母组成的子串反转,其他字符原样输出 样例:Input str = "234_sfss/_3333" public String wordReverse(String inputStr){ String str=new String(inputStr); StringBuffer s=new StringBuffer(); int a=0; for(int i=0;i<str,length();i++){ if((str.charAt(i)<='Z原创 2020-10-25 11:10:55 · 740 阅读 · 2 评论 -
面试官【谈谈你所理解的 TopK 问题】
在实际工作中,经常会遇到在海量数据中找出前K个最值的问题。对于此类问题,可能我们一般想到的算法是排序算法,首先给数据进行排序,再去获取k个最值轻而易举。但是当问题的规模内存中放不下时,普通的内排序就无法进行。对于海量数据的topk问题,一种常用的做法是借助堆解决。 1.原理 如果需要获取最大的k个值,可以建小堆。否则,建大堆。我们以获取k个最大值为例,进行原理说明。 首先读入前k个数据存入一个最小堆。 然后遍历后续的数据,对于每一个遍历的数据,都和堆顶(k个数据中最小的)数据比较,如果比堆顶数据小,则继续原创 2020-07-19 10:50:18 · 394 阅读 · 0 评论 -
腾讯经典考题《编写代码求最大连续子序列》
1.什么是最大连续子序列? 最大连续子序列问题是一个非常经典的问题,需要求解出一个数组中的最大连续子序列的和。比如数组{6, -3, -2, 7, -15, 1, 2, 2},它的最大连续子序列为{6,-3,-2,7},和为8。 2.解题思路 (1)暴力搜索 最大连续子序列的和只可能从数组0到n-1中某个位置开始,我们可以遍历0到n-1个位置,计算由这个位置开始的所有连续子序列中的和的最大值,最终求出全局最大值即可。更详细的讲,就是计算从位置0开始的最大连续子序列的和,从位置1开始的最大连续子序列的和…。直原创 2020-07-12 22:16:30 · 269 阅读 · 0 评论 -
面试再也不怕被问 HashMap 了
具体问题如下: 1.HashMap的内部数据结构 数组 + 链表/红黑树 2.HashMap允许空键空值么 HashMap最多只允许一个键为Null(多条会覆盖),但允许多个值为Null 3.影响HashMap性能的重要参数 初始容量:创建哈希表时桶的数量(数组的大小),默认为 16 负载因子:哈希表在其容量扩容之前可以达到一种尺度,默认为 0.75 4.HashMap的工作原理 HashMap是基于hashing的原理,我们使用put(key, value)存储对象到HashMap中,使用get(ke原创 2020-06-30 09:54:55 · 407 阅读 · 1 评论 -
【算法】斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 分析:斐波那契数列的标准公式为:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) 数列如下: 0 1 1 2 3 5 8 13 21 34 55 89… 方法一(递归): public class Solution { public int ...原创 2020-04-26 09:51:14 · 447 阅读 · 0 评论 -
【排序算法】桶排序
一.算法思想 一句话总结为:划分多个范围相同的子区间,每个子区间自排序,最后合并即可。 桶排序每个桶内存储一定范围的元素,通过映射函数,将待排序数组中的元素映射到各个元素分别对应的桶中,对每个桶中的元素进行排序,最后将非空桶中的元素逐个放入原序列中即可。桶排序需要尽量保证元素分散均匀,否则当所有数据集中在同一个桶中时,桶排序失效。 桶排序 (Bucket sort):工作原理是将待排序序列分到有限...原创 2020-04-24 15:48:43 · 390 阅读 · 0 评论 -
【算法题】把数组排成最小的数
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 import java.util.ArrayList; import java.util.List; import java.util.Collections; import java.util.Comparator; p...原创 2020-04-17 18:04:24 · 164 阅读 · 0 评论 -
八大排序算法
一.稳定性 二.七大排序的思路与其基本实现 1.直接插入排序 原理:整个区间被分为 (1)有序区间 (2)无序区间 每次选择无序区间的第一个元素, 在有序区间内选择合适的位置插入即可 代码实现: public static void insertSort(int[] array){ for(int i=1;i<array.length;i++){ ...原创 2020-03-01 22:31:38 · 193 阅读 · 0 评论 -
字符流中第一个不重复的字符
一.题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 二.程序代码 import java.util.Map; import java.util.LinkedHa...原创 2019-12-20 10:58:06 · 258 阅读 · 0 评论