自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除