- 博客(5)
- 收藏
- 关注
原创 Add Two Numbers 2
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a link
2016-08-29 22:36:21 245
原创 RansomNote_383
RansomNote 勒索信 从杂志中选取字符,作为勒索信的内容,判断勒索信字符串的内容是否都能从杂志字符串中获取? bool canConstruct(char* ransomNote, char* magazine) 思路: 字符串问题。该题目与字符串顺序无关,是字符个数统计。 26个英文字母数组统计。判断ransom中的个数是否大于mag中的个数。 此外
2016-08-25 21:49:47 337
原创 单链表 回文
判断一个单链表是否是回文数。 要求 时间复杂度O(n) 空间复杂度O(1) 分析:如果是连续内存的数组a[n],可以直接比较; if a[i] == a[n-1-i] 单链表无法直接处理。怎么能同时满足时间复杂度和空间复杂度的要求呢? 为了满足O(n)的时间复杂度,只能遍历一次; 为了满足O(1)的空间复杂度,得利用单链表的特点; 构造反向链表,将正向链表和反向链表
2016-08-18 22:06:33 455 2
原创 【LetCode——342】Power of four
一个正整数,判断是否是4的次方;(不使用循环、递归) 首先想到的是不停的除4,判断最后是否为1;循环、递归 bool isPowerOfFour(int num) { if(num return false; while(num && (num % 4 == 0)) { num = num / 4; } return num == 1;
2016-08-14 21:57:25 132
原创 3Sum_15
数组中的三个数的和为0? 思路: 1、首先想到的是遍历,三层遍历,复杂度O(n^3),肯定不是最好的方法; 2、优化:自己想了下,结合网上的方法,至少需要两次遍历 1)原理:数组中两个数的和为M, 先将数组排序, 利用两个游标j、k分别标识数组的最大/最小位置,一次遍历即可,复杂度O(n)。 if a[j] + a[k] j++; else if a[j] + a[k]
2016-08-03 23:38:06 155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人