算法
文章平均质量分 74
こ Noahっ
一定要加油啊!
展开
-
LeetCode 167号问题:两数之和 II - 输入有序数组
题目描述 给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 示例: 输入: numbers = [2, 7, 11,...原创 2020-03-06 21:22:43 · 100 阅读 · 0 评论 -
LeetCode 26号问题:删除排序数组中的重复项
题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。...原创 2020-03-06 20:54:41 · 136 阅读 · 0 评论 -
优化后的冒泡排序
该冒泡排序经过了两次优化,第一次优化增加了一个标志位用来判断是否发生了交换,第二次优化对边界判定进行了优化。具体的优化解释这篇博客写的挺好的,我写不了人家那么好,所以就不写了,大家可以直接去这篇博客参考。 博客地址:https://blog.csdn.net/wubingju93123/article/details/81215984 public static void swapS...原创 2020-02-09 00:00:06 · 132 阅读 · 0 评论 -
三种常见的插入排序
直接插入排序 public static void insertSort(int[] array) { if (array == null || array.length <= 1) { return; } int temp = 0; int insertIndex = 0; ...原创 2020-02-08 23:26:08 · 176 阅读 · 0 评论 -
两个线程交替打印1-100之间的奇偶数
实现一:synchronized关键字实现(缺点:效率低) 实现思路:让两个线程来争夺同一把锁,如果抢到锁只有满足自己的奇偶判定条件才打印(注:&方式判断奇偶更高效) public class Demo04_两个线程交替打印奇数_纯synchronized { private static Object lock = new Object(); private sta...原创 2019-12-12 17:25:32 · 812 阅读 · 0 评论 -
生产者消费者模式
用wait和notifyAll来实现生产者消费者模式(关键在于队列的创建) import java.util.ArrayList; import java.util.Date; import java.util.LinkedList; import java.util.List; public class Demo02_生产者消费者模式 { public static void m...原创 2019-12-12 17:33:43 · 116 阅读 · 0 评论 -
从排序数组中删除重复项【O(n)级别算法】
题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例...原创 2019-11-05 12:36:56 · 410 阅读 · 1 评论