摘要: 一:解题思路 方法一:先遍历一遍字符串,记录每个字母出现的次数,然后再遍历一遍字符串,查看第一次出现只出现一次的字母下标。这种方法需要遍历字符串2次,如果字符串很长的话,那么就会比较耗时。Time:O(n),Space:O(n) 方法二:遍历一遍字符串,记录每个字母出现的次数,同时记录每个字母出现的 阅读全文
posted @ 2020-03-18 21:09 repinkply 阅读(155) 评论(0) 推荐(0)
摘要: 一:解题思路 将要删除节点的后面节点的值赋值给待删除的节点,然后再将要删除节点的next指针指向后后的一个节点。Time:O(1),Space:O(1) 二:完整代码示例 (C++版和Java版) C++: class Solution { public: void deleteNode(ListN 阅读全文
posted @ 2020-03-18 18:21 repinkply 阅读(106) 评论(0) 推荐(0)
摘要: 一:解题思路 解题方法:用2个栈实现队列 二:完整代码示例 (C++、Java、Python) C++: class MyQueue { public: /** Initialize your data structure here. */ stack<int> m_in; stack<int> m 阅读全文
posted @ 2020-03-18 18:07 repinkply 阅读(171) 评论(0) 推荐(0)
摘要: 一:解题思路 方法一:将s中的每一颗子树都和t进行对比。Time:O(m*n),Space:O(h) 方法二:将s和t的每颗子树的根节点都设置一个哈希值,于是只需要对比对于节点的哈希值就行。Time:O(m+n),Space:O(m+n) 二:完整代码示例 (C++版和Java版) 方法一C++: 阅读全文
posted @ 2020-03-18 16:58 repinkply 阅读(154) 评论(0) 推荐(0)
摘要: 一:解题思路 方法一:递归法,Time:O(2^n),Space:O(n) 方法二:迭代法一:Time:O(n),Space:O(n) 方法三:迭代法二:Time:O(n),Space:O(1) 二:完整代码示例 (C++版和Java版) 方法一C++: class Solution { publi 阅读全文
posted @ 2020-03-18 14:11 repinkply 阅读(132) 评论(0) 推荐(0)
摘要: 一:解题思路 第一种方法:暴力破解法:Time:O(m*n),Space:O(1) 第二种方法:利用一个哈希表,Time:O(m+n),Space:O(k) 二:完整代码示例 (C++版和Java版) 第一种方法C++: class Solution { public: int numJewelsI 阅读全文
posted @ 2020-03-18 13:39 repinkply 阅读(151) 评论(0) 推荐(0)