- 博客(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 250
原创 RansomNote_383
RansomNote勒索信从杂志中选取字符,作为勒索信的内容,判断勒索信字符串的内容是否都能从杂志字符串中获取?bool canConstruct(char* ransomNote, char* magazine)思路:字符串问题。该题目与字符串顺序无关,是字符个数统计。26个英文字母数组统计。判断ransom中的个数是否大于mag中的个数。此外
2016-08-25 21:49:47 343
原创 单链表 回文
判断一个单链表是否是回文数。要求 时间复杂度O(n) 空间复杂度O(1)分析:如果是连续内存的数组a[n],可以直接比较;if a[i] == a[n-1-i]单链表无法直接处理。怎么能同时满足时间复杂度和空间复杂度的要求呢?为了满足O(n)的时间复杂度,只能遍历一次;为了满足O(1)的空间复杂度,得利用单链表的特点;构造反向链表,将正向链表和反向链表
2016-08-18 22:06:33 468 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 139
原创 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 162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人