摘要:
36. 有效的数独 题目链接 直接模拟 class Solution { public boolean isValidSudoku(char[][] board) { for(int i = 0; i < 9; i++){ boolean[] marked = new boolean[9]; for 阅读全文
摘要:
35. 搜索插入位置 题目链接 二分查找 查找目标数,若找不到,就返回最小的大于它的数的位置 在普通二分查找的基础上,记录大于目标值的mid即可 class Solution { public int searchInsert(int[] nums, int target) { int left = 阅读全文
摘要:
34. 在排序数组中查找元素的第一个和最后一个位置 题目链接 二分查找 先二分查找,找到后更新第一个和最后一个的位置,继续二分,找头尾 class Solution { int min = 100000 + 5, max = -1; public int[] searchRange(int[] nu 阅读全文
摘要:
33. 搜索旋转排序数组 题目链接 二分查找 在普通二分查找的情况下分情况讨论 旋转排序数组一般分为两个递增的序列,只需要判断mid位于左右哪个序列中,再移动lr即可 class Solution { public int search(int[] nums, int target) { int l 阅读全文
摘要:
31. 下一个排列 题目链接 找规律 从后往前找,找到在数组末位的最长的逆序子数据,子数组的前一位就是要变的位置 要将前一位替换成逆序子数组中最小的比它大的数,然后将逆序子数组排序即可 特殊情况:全部逆序,包括数组长度为1,都直接返回有序数组即可 class Solution { public vo 阅读全文