随笔分类 - 【Java 算法】
摘要:最接近的三数之和 你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1: 输入:nums = [-1,2,1,-4], target = 1 输出:2
阅读全文
posted @ 2022-07-23 17:54
西北野狼
摘要:给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。 示例: 输入:[1,12,-5,-6,50,3], k = 4 输出:12.75 解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75 提示: 1 <= k <= n <= 30,000。 -所给
阅读全文
posted @ 2022-07-23 17:38
西北野狼
摘要:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0
阅读全文
posted @ 2022-06-26 22:00
西北野狼
摘要:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy Coder.则经过替换之后的字符串为We%20Are%20Happy%20Coder
阅读全文
posted @ 2020-04-27 10:53
西北野狼
摘要:基数排序 (英语:Radix sort)是一种非比较型 "整数" "排序算法" ,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年 "赫尔曼·何乐礼" 在
阅读全文
posted @ 2019-06-13 17:12
西北野狼
摘要:桶排序(Bucket sort) 或所谓的 箱排序 ,是一个 "排序算法" ,工作的原理是将 "数组" 分到有限数量的桶里。每个桶再个别排序(有可能再使用别的 "排序算法" 或是以递归方式继续使用桶排序进行排序)。桶排序是 "鸽巢排序" 的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排
阅读全文
posted @ 2019-06-13 15:48
西北野狼
摘要:归并排序: 先分解再合并。 分解:分为若干个子序列,每个子序列是有序的。 合并:然后再把有序子序列合并为整体有序序列。 java public class MergeSortTest { public static void main(String[] args) { int[] array = {
阅读全文
posted @ 2019-04-29 10:53
西北野狼
摘要:java算法 希尔排序 基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列 中的记录“基本有序”时,再对全体记录进行依次直接插入排序。 1. 操作方法: 选择一个增量序列 t1,t2,…,tk,其中 ti tj,tk=1; 2. 按增量序列个数 k,对序列进行 k
阅读全文
posted @ 2019-04-24 11:34
西北野狼
摘要:java算法 快速排序 快速排序的原理:选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素。一次循环:从后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果没有继续比较下一个,直到找到第一个比基准值小的值
阅读全文
posted @ 2019-04-17 16:26
西北野狼
摘要:java算法 插入排序 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从 桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到
阅读全文
posted @ 2019-04-16 17:55
西北野狼
摘要:java算法 冒泡排序 1. 比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。 2. 这样对数组的第 0 个数据到 N 1 个数据进行一次遍历后,最大的一个数据就“沉”到数组第N 1个位置。 3. N=N 1,如果 N 不为 0 就重复前面二步,否则排序完成。
阅读全文
posted @ 2019-04-16 11:00
西北野狼
摘要:折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。 通过递归和非递归实现二分查找: java public
阅读全文
posted @ 2019-04-15 17:09
西北野狼

浙公网安备 33010602011771号