代码即艺术 
  • 首页
  • 归档
  • 分类
  • 标签
  • 入门
  • 关于
  • 公益404
  •   
  •   
LeetCode 33. 搜索旋转排序数组(中)

LeetCode 33. 搜索旋转排序数组(中)

找到旋转的下标 rotation_index ,也就是数组中最小的元素。二分查找在这里可以派上用场。找到rotation_index之后,如果 target > nums[0] 则说明targe在rotation_index 前面,否在target肯定在rotation_index 后面,在选中的数组区域中再次使用二分查找。

2020-03-09
LeetCode
二分查找和搜索
LeetCode 32. 最长有效括号(难)

LeetCode 32. 最长有效括号(难)

使用了两个变量 Left 和 Right,分别用来记录到当前位置时左括号和右括号的出现次数。 当遇到左括号时,Left 自增 1,右括号时 Right 自增1。 对于最长有效的括号的子串,一定是左括号等于右括号的情况,此时就可以更新结果 res 了,一旦右括号数量超过左括号数量了,说明当前位置不能组成合法括号子串,Left 和 Right 重置为 0。

2020-03-09
LeetCode
动态规划 栈和队列
LeetCode 31. 下一个排列(中)

LeetCode 31. 下一个排列(中)

遇到输入序列就是严格降序的,直接返回其升序。 从右往左找到第一对两个连续的数字 a[i] 和 a[i+1],它们满足 a[i]<a[i+1](从后往前找)。此时交换这两个数字,就能得到一个比原来序列更大的组合。接着,去a[i+1]右边找到一个a[j](从后往前找),使得a[j-1]<a[i]<a[j]。这时,交换a[i-1]和a[j],再对a[i]右边的数字进行一次降序排列,就可

2020-03-09
LeetCode
数组与指针
LeetCode 30. 串联所有单词的子串(难)

LeetCode 30. 串联所有单词的子串(难)

这道题可以用滑动窗口的方式来解决,窗口的大小是words数组里面所有单词的总和。 因为字符串s如果有子串能完全匹配words,那肯定是words中的每个单词都要出现若干次的(words里面的单词可能有重复)。这样一来,我们就不用排列组合words中的一个一个字符串了。

2020-03-09
LeetCode
数组与指针
LeetCode 29. 两数相除(中)

LeetCode 29. 两数相除(中)

利用二分查找、位移运算可以实现两数相除。

2020-03-09
LeetCode
二分查找和搜索 位运算
1…6061626364…82

搜索

Hexo Fluid