刷题
走天涯_1
努力学习各种算法
展开
-
二维数组中的查找
#include<stdio.h>#include<iostream>using namespace std;int main(){ int x=0,y=0; cin>>x>>y; int** matrix=new int*[x]; for(int i=0;i<x;i++){ matrix[i]=new int[y]; } int原创 2016-07-10 14:36:53 · 288 阅读 · 0 评论 -
空间换时间-替换空格
#include<stdio.h>#include<iostream>#include<string.h>#include<stdlib.h>using namespace std;int main(){ const int length=100; char s[length]; cin.getline(s,length); int n=strlen(s);原创 2016-07-10 15:18:04 · 407 阅读 · 0 评论 -
从尾到头打印链表
#include#include#includeusing namespace std;struct ListNode{ int m_nKey; ListNode* m_pNext;};void print_list(ListNode* head){ if(head==NULL) return; print_list(head->m_pNext); coutm_nKey原创 2016-07-10 16:14:33 · 336 阅读 · 0 评论 -
排序算法总结
1.快速排序:快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。步骤为:从数列中挑出一个元素,称为"基准"(pivot),重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(part原创 2016-07-23 17:21:37 · 816 阅读 · 0 评论 -
排序算法总结实现
1排序算法之直接插入排序#include#includeusing namespace std;int main(){ int n=0,value=0; cin>>n; int *val=new int[n]; int num=0; int size=n; while(size--){ cin>>value; val[num]=value; num++; }原创 2016-07-19 14:06:36 · 310 阅读 · 0 评论 -
二叉树的深度
三种方法:递归,深搜,宽搜;/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {pu原创 2016-08-16 22:07:40 · 352 阅读 · 0 评论 -
Google 2016面试题
1、数组补丁给出一个从小到大排好序的整数数组nums和一个整数n,在数组中添加若干个补丁(元素)使得[1,n]的区间内的所有数都可以表示成nums中若干个数的和。返回最少需要添加的补丁个数。 Example 1: nums = [1, 3], n = 6 返回1,表示至少需要添加1个数{2},才可以表示1到6之间所有数。 Example 2: nums = [1, 5, 10], n =原创 2016-09-16 11:26:46 · 666 阅读 · 1 评论 -
丑数
我们把只包含因子2、3和5的数称作丑数(Ugly Number)。#include <iostream> using namespace std; int Min(int a, int b, int c) { int temp = (a < b ? a : b); return (temp < c ? temp : c); } int Fin原创 2016-09-16 12:14:55 · 490 阅读 · 0 评论