- 博客(12)
- 收藏
- 关注
原创 523. Continuous Subarray Sum
本题给出一个整数数组,里面的数都是非负整数,另外给出一个整数k,看该数组中是否有连续的子数组和为k或k的倍数。 本题有两个需要注意的地方,一是当k为0的情况,二是子数组长度必须大于1. 思路为用一个集合unsorderd_set来解决。 当k为0时,数组中必须有两个连续的0,unsorderd_set中存放前缀数组和sum.当k不为0时,存放前缀数组和与k的余数,当余
2017-06-27 17:51:16 96
原创 227. Basic Calculator II
本题给出一个字符串,字符串中只有非负整数以及‘+’,‘-’,‘*’,‘/’四种运算符号,要求输出字符串的运算结果。 该题有两个难点,一是整数的长度不一样,对于该点用字符串流解决。 二是一个整数后的运算符号是‘*’,‘/’时,要先进行乘除运算,因此对于一个新的整数,用变量temp暂时存储。 代码如下: int calculate(string s) { istringstre
2017-06-27 13:47:50 100
原创 263. Ugly Number
丑数是那些只能被2,3,5整除的数,1是特殊的丑数。 给出一个数,判断是否为丑数。 比较简单 class Solution { public: bool isUgly(int num) { for (int i=2; i<6 && num; i++){ while (num % i == 0) n
2017-06-05 21:02:28 80
原创 260. Single Number III
题中给出一个容器vector,里面除了两个不同的数,其余所有的数都是成对存在,输出要求为一个容器vector,里面为这两个不同的数字。 思路如下,相同的数字按位异或得到0,而不同的数字按位异或得到的数字二进制表示里有1. 于是,先把所有的数字异或一次,得到一个数,因为所求的两个数不相同,所以,二进制表示中1所在的位置就是两个数字不同的位数。找到二进制表示右边开始第一个1的位置。
2017-06-05 15:57:16 92
原创 526.Beautiful Arrangement
本题的输入是一个整型数N,定义一个Beautiful Arrangement数列,这个数列由从1到N的N个数组成。对于BA数列中每个数k所在的位置i,都有k%i==0或者i%k==0,输入为BA的数列的排列方式共有多少种。 对于这种类型的题,采用一种交换-递归的思想。 class Solution { public: int count Arrangement(int
2017-05-18 14:34:03 86
原创 102.Binary Tree Level Order Traversal
这题首先给出树结构。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} *
2017-05-13 15:16:49 105
原创 53,Maximum Subarray
这题给出一个数组,让输出最大的连续子数组的和。 数组的长度为N,应用动态规划的思想,依次计算从头至第1,2个元素...直至整个数组共N个数组的最大连续子数组的和。 class Solution { public: int maxSubArray(vector& nums) { vectortemp(nums.size(),0); temp
2017-05-13 14:38:09 64
原创 127.Word Ladder
这道算法题,输入是两个word(string类型),begin和end.和一个string的集合wordDict(set),里面有不同的word(string),输出要求为一个从begin变换为end且每次只允许变动一个字母的最短变换长度。所有的word都有相同的长度,都是小写字母,且每次只允许变换一个字母。 这道题,因为输入中有集合,考虑用BFS(广度优先搜索)的方法。 广度
2017-05-08 15:09:14 109
原创 92.Reverse Linked List II
Reverse a linked list from position m to n. Do it in-place and in one-pass. For example: Given 1->2->3->4->5->NULL, m = 2 and n = 4, return 1->4->3->2->5->NULL. Note: Given m, n satisfy the followi
2017-03-31 16:16:20 83
原创 206.reversed linked list
本题是要逆置一个单链表。我想到了两种方法,第一种是加一个头结点的方法,第二种是不加头结点的方法。加头结点的方法如下class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* new_head = new ListNode(0); new_head -> next = h
2017-03-31 14:20:10 91
原创 数组和指针相关
char *p1 = "hello"; char *p2 = "world"; char *p3 = "a piece of cake"; char *str[] = { p1, p2, p3 }; cout << sizeof(*str[0]) << " " << typeid(str[0]).name() << " " << *(str[0] + 1) << endl;//typeid是类型 c
2017-03-10 22:51:40 78
转载 关于数组和指针的测试
char *p1 = "hello"; char *p2 = "world"; char *p3 = "a piece of cake"; char *str[] = { p1, p2, p3 }; cout sizeof(*str[0]) " " typeid(str[0]).name() "
2017-03-10 22:50:23 115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人