摘要: 一:解题思路 我们知道2个相同的数字异或的结果为0,所以我们只需要将数组下标和数组中每个元素相异或就能够找出最后的那个缺失的数字。 二:完整代码示例 (C++版和Java版) Time:O(n),Space:O(1) C++版: class Solution { public: int missin 阅读全文
posted @ 2020-03-10 14:43 repinkply 阅读(226) 评论(0) 推荐(0)
摘要: 一:解题思路 这道题主要有2种解题方法。第一种:利用一个辅助栈,在遍历链表的时候,将链表中所对应的元素相应的入栈,然后在相应的对比栈顶元素和链表的元素。这种方法遍历了2遍单链表,空间上用了一个栈。所以,Time:O(n),Space:O(n) 第二种方法:将单链表翻转一半,然后分别向2边进行对比。所 阅读全文
posted @ 2020-03-10 14:19 repinkply 阅读(122) 评论(0) 推荐(0)
摘要: 一:解题思路 二:完整代码示例 (C++版和Java版) 第一种方法C++ //Time:O(m),Space:O(1) class Solution { public: bool isPalindrome(int x) { string str = to_string(x);//C++11特有语法 阅读全文
posted @ 2020-03-09 21:50 repinkply 阅读(131) 评论(0) 推荐(0)
摘要: 一:解题思路 这道题目回溯的思想来做,代码表现的方式为递归。Time:O(n*n!),Space:O(n) 二:完整代码示例 C++版: class Solution { public: void permuteRec(vector<int>& nums, int start, vector<vec 阅读全文
posted @ 2020-03-09 20:54 repinkply 阅读(215) 评论(0) 推荐(0)
摘要: 一:解题思路 第一种方法:这个题目首先可以想到的用一个循环,将x连续乘以n次,如果n小于0,则返回其倒数,如果n大于0,则直接返回其结果。Time:O(n),Space:O(1) 第二种方法:要用到二分搜索的思想在里面。Time:O(log(n)),Space:O(1) 二:完整代码示例 (C++版 阅读全文
posted @ 2020-03-09 17:02 repinkply 阅读(175) 评论(0) 推荐(0)
摘要: 一:解题思路 方法一:用递归的方法去解决。Time:O(n),Space:O(n) 方法二:用双指针的方法去解决。Time:O(n),Space:O(1) 二:完整代码示例 (C++、Java、Python) 方法一C++: class Solution { public: ListNode* re 阅读全文
posted @ 2020-03-08 21:30 repinkply 阅读(147) 评论(0) 推荐(0)
摘要: 一:解题思路 这道题目与判断二叉树是否相等基本上是一模一样的。有2种解法,第一种:递归法。第二种:迭代法。 二:完整代码示例 (C++版和Java版) 递归版C++: class Solution { public: bool isSymmetricRecursive(TreeNode* left, 阅读全文
posted @ 2020-03-08 18:17 repinkply 阅读(180) 评论(0) 推荐(0)
摘要: 一:解题思路 因为树是递归定义的,所以与二叉树的相关操作都可以用递归的方法来解决。用递归的方法来解决,从本质上看也就可以用迭代的方法来解决。这道题目与之前博客的p4(判断二叉树是否对称)几乎是一模一样的。这道题的难度在于,用迭代法求解这个题目,用一个栈来存储树节点。 二:完整代码示例 (C++版和J 阅读全文
posted @ 2020-03-08 16:05 repinkply 阅读(154) 评论(0) 推荐(0)
摘要: 一:解题思路 这个题目的解题的关键在于抓住二维矩阵的规律,从左向右是递增的,从上到下是递增的。得到二维数组的行数(i)和列数(j)。1.将坐标定位到二维数组的右上角,如果目标值target小于此时的二维数组的元素,说明此时二维数组所对应的一整列都大于目标值,此时 j--。2.如果目标值target大 阅读全文
posted @ 2020-03-07 20:50 repinkply 阅读(246) 评论(0) 推荐(0)
摘要: 一:解题思路 这道题目介绍2种方法。 解法一:利用位运算来做,数组中所有的数字都是成对出现的,只有一个是单独出现的,那么我们可以利用异或的性质来做。Time:O(n),Space:O(1) 解法二:利用集合set的特性,把所有数字添加到集合中(每个数字只出现一次),然后将集合中的数字乘以2减去原来数 阅读全文
posted @ 2020-03-07 20:02 repinkply 阅读(216) 评论(0) 推荐(0)