上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 36 下一页
摘要: 一:解题思路 Time:O(n),Space:O(1) 二:完整代码示例 (C++版和Java版) C++: class Solution { public: int removeElement(vector<int>& nums, int val) { if (nums.size() == 0) 阅读全文
posted @ 2020-04-05 16:22 repinkply 阅读(168) 评论(0) 推荐(0)
摘要: 一:解题思路 这道题目看起来比较简单,只需要将数组对应的从i到j的下标中的元素累加就行。但题目说了,会多次调用这个函数。是不是有更高效的做这个题目的方法呢?当然有,我们可以用一个简单的公式来计算一下。我们定义S(i)为从0到i-1的和,S(j)定义为从0到j-1的和,那么f(i,j)=S(j+1)- 阅读全文
posted @ 2020-04-05 15:59 repinkply 阅读(161) 评论(0) 推荐(0)
摘要: 一:解题思路 这个题目和上一道二进制求和题目类似。Time:O(max(m,n)),Space:O(n) 二:完整代码示例 (C++版和Java版) C++: class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNod 阅读全文
posted @ 2020-04-04 21:45 repinkply 阅读(157) 评论(0) 推荐(0)
摘要: 一:解题思路 Time:O(max(m,n)),Space:O(max(m,n)) 二:完整代码示例 (C++版和Java版) C++: class Solution { public: string addBinary(string a, string b) { int i = a.length( 阅读全文
posted @ 2020-04-04 21:20 repinkply 阅读(154) 评论(0) 推荐(0)
摘要: 一:解题思路 方法一:先对2个字符串进行排序,然后逐一比较他们中的每一个元素,如果不等则返回false。Time:O(n*log(n)), Java中空间复杂度为:Space:O(n),C++中空间复杂度为:O(1) 方法二:申请一个大小为26的整形数组,s数组统计字母出现的次数,t数组抵消字母出现 阅读全文
posted @ 2020-04-04 20:27 repinkply 阅读(150) 评论(0) 推荐(0)
摘要: 一:解题思路 依次从低到高取出n中的每一二进制位,进行操作。res初始化为0,res=(n&1)|(res<<1);n=n>>1,然后循环32次。无论n取什么值,都只需要操作32次就可以得到最后结果,所以Time:O(1),Space:O(1) 二:完整代码示例 (C++版和Java版) C++: 阅读全文
posted @ 2020-04-04 18:13 repinkply 阅读(129) 评论(0) 推荐(0)
摘要: 一:解题思路 首先很容易想到的一种方法是,暴力破解法,用2层循环去除数组中所有的数字对,然后进行一一比较,这种的时间复杂度为O(n^2)太高了,就不写它的代码了。 方法一:先对数组进行排序,然后从数组下标为1的开始,与前一个进行对比,直到遍历完数组。Time:(O(n*log(n))),Space: 阅读全文
posted @ 2020-04-04 17:44 repinkply 阅读(158) 评论(0) 推荐(0)
摘要: 一:解题思路 列表题是一个26进制数表示的字符串,其中1到26用A到Z表示。而这个题目的本质就是,让我们把这个26进制数转化为一个10进制数。 1.设置一个base=1,字符串从右向左进行遍历,将当前字母表示的数字乘以base,加入到最后的结果num中,然后将base*26。Time:O(n),Sp 阅读全文
posted @ 2020-04-04 17:19 repinkply 阅读(135) 评论(0) 推荐(0)
摘要: 一:解题思路 采用一个虚拟的头节点maybe,同时用另外一个节点notNine指向maybe。然后考虑的情况和上道题数组加一基本上是一样的。Time:O(n),Space:O(1) 二:完整代码示例 (C++版和Java版) C++: class Solution { public: ListNod 阅读全文
posted @ 2020-04-04 16:58 repinkply 阅读(143) 评论(0) 推荐(0)
摘要: 一:解题思路 解析:一般情况,只需要将最后一位数字加1,然后返回即可。题目以及告诉我们数组非空,所以我们不用判断边界条件。Time:O(n),Space:O(1) 1.如果最后一位数字是9,我们就要产生进位。即把最后一位数字置为0,将前一位数字加1即可。 2.如果数组上的数字全部是9,那么这个时候就 阅读全文
posted @ 2020-04-04 12:13 repinkply 阅读(142) 评论(0) 推荐(0)
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 36 下一页