自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Billy's Blog

欢迎访问我的博客

  • 博客(14)
  • 资源 (2)
  • 收藏
  • 关注

原创 有效的完全平方数

public boolean isPerfectSquare(int num) { int i = 1, j=num; while (i <=j) { int mid = (i + j)/2; if (mid == (num * 1.0/mid)) // 防止乘法溢出 ...

2019-03-08 11:39:20 165

原创 寻找比目标字母大的最小字母

public char nextGreatestLetter(char[] letters, char target) { // 先判断最后一个字母是否比目标字母大 if (letters[letters.length-1] <= target) return letters[0]; int low = 0, high = letters.length-1...

2019-03-08 11:29:45 496

原创 区间列表的交集

解题思路:先要考虑两个集合存在交集的情况。通过分析,可以知道当a.s >= b.s时,交集为[a.s, min(a.e, b.e)],同理当b.s >= a.s时,交集为[b.s, min(a.e, b.e)]。 public Interval[] intervalIntersection(Interval[] A, Interval[] B) { Arra...

2019-03-07 12:15:09 958

原创 两数之和II

public int[] twoSum(int[] numbers, int target) { int i = 0, j = numbers.length-1; int[] ret = new int[2]; while (i < j) { while (target > 0 && numbers[j] > target) ...

2019-03-06 12:09:07 176

原创 删除排序数组中的重复项

public int removeDuplicates(int[] nums) { int j = 1; // 慢指针 for (int i=1; i<nums.length; i++) { if (nums[i] != nums[i-1]) { nums[j++] = nums[i]; } } return j; }...

2019-03-06 11:38:18 110

原创 有序数组的平方

public int[] sortedSquares(int[] A) { int i = 0, j = A.length-1; int k = A.length-1; int[] tmp = new int[A.length]; while (i <= j) { if (A[i] * A[i] <= A[j] * A[j]) { ...

2019-03-06 11:12:03 221

原创 移除元素

双指针:两个指针分别指向首尾,遍历头指针,遇到等于val时,遍历尾指针,找到不等于val的值,进行交换,两指针相撞时,结束。 public int removeElement(int[] nums, int val) { int i = 0, j = nums.length-1; // 将等于val的数移动到数组右边 while (i <= j) { ...

2019-03-05 13:14:16 156

原创 寻找重复数

解题思路:二分法。在区间[1, n]中搜索,首先求出中点mid,然后遍历整个数组,统计所有小于等于mid的数的个数,如果个数小于等于mid,则说明重复值在[mid+1, n]之间,反之,重复值应在[1, mid-1]之间,然后依次类推,直到搜索完成,此时的right就是我们要求的重复值。 public int findDuplicate(int[] nums) ...

2019-03-04 21:05:20 591

原创 两个数组的交集

二分法: 先排序,对两个数组做归并运算,使用set来去重。 public int[] intersection(int[] nums1, int[] nums2) { int i = 0, j = 0, k = 0; // 排序 Arrays.sort(nums1); Arrays.sort(nums2); HashSet<Integer> ...

2019-03-04 20:41:38 324

原创 反转字符串中的元音字母

public String reverseVowels(String s) { int i = 0; int j = s.length()-1; char c; char[] ss = s.toCharArray(); while (i < j) { while (i < j && containsVowels(ss[i])...

2019-03-04 20:16:52 451

原创 盛最多水的容器

解题思路:两个指针,一前一后,分别指向第一个元素和最后一个元素,计算此时容纳水的容量,根据两边的高度调整移动方向,指针向高的那边移动(贪心性质)两个指针相撞时就结束。 public int maxArea(int[] height) { int i = 0; int j = height.length-1; int maxWater = 0; whil...

2019-03-04 16:38:40 159

原创 最低票价

int[][] memo = null; // 备忘录 int r(int idx, int[] days, int[] costs, int deadLine) { int a, b, c, min; if (idx == days.length) return 0; // 有效期超过最后一天 if (deadLine >= days[days...

2019-03-01 18:48:53 310

原创 完全平方数

解题思路:该题目与Coin Change很相似,先找出到n为止的所有的完全平方数,然后暴力法进行搜索。当然,可以继续优化为动态规划。 int[][] memo = null; // 备忘录 public int sovle(int n, int [] squares, int idx) { if (n == 0) // 找到一种组合 return 0; ...

2019-03-01 15:28:37 1147

原创 翻转矩阵后的得分

解题思路:先判断每一行的第一个元素,是否是0,如果是,就翻转该行;判断第2列到最后一列中,每列0的个数是否大于1的个数,如果是,就翻转该列;之后按照二进制数的解释进行计算。 public int matrixScore(int[][] A) { if (A == null || A.length == 0) return 0; int rows = A....

2019-03-01 14:53:39 175

CC++与设计模式基础课程讲义

CC++与设计模式基础课程讲义 完整版

2022-10-10

mldn视频笔记

mldnjava基础视频笔记 的

2018-07-01

李兴华java8编程讲义

java8最新讲义,很不错的哦 ha

2018-06-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除