LEETCODE 279. Perfect Squares 解题思路分析

题目大意:

完全平方数

给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。

继续阅读
发表在 leetcode | 标签为 , , , , | 一条评论

LEETCODE 240. Search a 2D Matrix II 解题思路分析

题目大意:

搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:

  • 每行的元素从左到右升序排列。
  • 每列的元素从上到下升序排列。
继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 73. Set Matrix Zeroes 解题思路分析

题目大意:

矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法

继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 116. Populating Next Right Pointers in Each Node 解题思路分析

题目大意:

填充每个节点的下一个右侧节点指针

给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:

struct Node {
  int val;
  Node *left;
  Node *right;
  Node *next;
}

填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。

初始状态下,所有 next 指针都被设置为 NULL。

继续阅读
发表在 leetcode | 标签为 , , , , | 留下评论

LEETCODE 395. Longest Substring with At Least K Repeating Characters 解题思路分析

继续阅读

发表在 leetcode | 标签为 , , | 留下评论

LEETCODE 334. Increasing Triplet Subsequence 解题思路分析

题目大意:

递增的三元子序列

给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。

数学表达式如下:

  • 如果存在这样的 i, j, k,  且满足 0 ≤ i < j < k ≤ n-1,
  • 使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。

说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。

继续阅读
发表在 leetcode | 标签为 , , | 留下评论

LEETCODE 277. Find the Celebrity 解题思路分析

题目大意:

假设你是一个专业的狗仔,参加了一个 n 人派对,其中每个人被从 0 到 n – 1 标号。在这个派对人群当中可能存在一位 “名人”。所谓 “名人” 的定义是:其他所有 n – 1 个人都认识他/她,而他/她并不认识其他任何人。

现在你想要确认这个 “名人” 是谁,或者确定这里没有 “名人”。而你唯一能做的就是问诸如 “A 你好呀,请问你认不认识 B呀?” 的问题,以确定 A 是否认识 B。你需要在(渐近意义上)尽可能少的问题内来确定这位 “名人” 是谁(或者确定这里没有 “名人”)。

在本题中,你可以使用辅助函数 bool knows(a, b) 获取到 A 是否认识 B。请你来实现一个函数 int findCelebrity(n)。

派对最多只会有一个 “名人” 参加。若 “名人” 存在,请返回他/她的编号;若 “名人” 不存在,请返回 -1。

继续阅读
发表在 leetcode | 标签为 , , , | 2条评论

LEETCODE 285. Inorder Successor in BST 解题思路分析

题目大意:

二叉搜索树中的顺序后继

给你一个二叉搜索树和其中的某一个结点,请你找出该结点在树中顺序后继的节点。

结点 p 的后继是值比 p.val 大的结点中键值最小的结点。

继续阅读
发表在 leetcode | 标签为 , , , , | 留下评论

LEETCODE 134. Gas Station 解题思路分析

题目大意:

加油站

在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。

你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。

如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。

继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 150. Evaluate Reverse Polish Notation 解题思路分析

题目大意:

逆波兰表达式求值

根据逆波兰表示法,求表达式的值。

有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。

说明:

  • 整数除法只保留整数部分。
  • 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
继续阅读
发表在 leetcode | 标签为 , , | 留下评论