程序问题
小陈往事
这个作者很懒,什么都没留下…
展开
-
编程之美
问题描述: Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗? 扩展问题: 随着Tango的发展,管理原创 2015-05-15 16:54:01 · 339 阅读 · 0 评论 -
Morris遍历二叉树
#include<iostream>#include<list>using namespace std;struct TreeNode{ int value; TreeNode* left; TreeNode* right; TreeNode(int value):value(value),left(NULL),right(NULL){};};class So原创 2015-07-13 10:56:01 · 224 阅读 · 0 评论 -
【leetcode】Same Tree和Balanced Binary Tree
#include<iostream>#include<vector>#include<deque>using namespace std;struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int val):val(val),left(NULL),right(NULL){};原创 2015-07-13 23:32:08 · 147 阅读 · 0 评论 -
Longest Palindromic Substring
暴力解法:#include<iostream>#include<string>using namespace std;string expand(string a,int l,int r){ while(l>=0&&r<a.size()) { if(a[l]==a[r]) { l--; r++;原创 2015-07-07 14:58:05 · 228 阅读 · 0 评论 -
Wildcard Matching
迭代:#include<iostream>using namespace std;class Solution{public: bool isMatch(const char *s, const char *p) { int i=0,j=0; bool str=false; for(;s[i]!='\0原创 2015-07-07 20:31:52 · 235 阅读 · 0 评论 -
【leetcode】Flatten Binary Tree to Linked List
前序遍历二叉树,并进行扁平化处理#include<iostream>#include<vector>#include<deque>#include<stack>using namespace std;struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int val):va原创 2015-07-14 11:01:02 · 165 阅读 · 0 评论 -
【leetcode】Populating Next Right Pointers in Each Node II
#include<iostream>#include<vector>#include<deque>#include<stack>using namespace std;struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int val):val(val),left(NULL原创 2015-07-14 15:21:10 · 147 阅读 · 0 评论 -
面试题目积累
19.C++多态的实现原理 对于虚函数调用来说,每一个对象内部都有一个虚表指针,该虚表指针被初始化为本类的虚表。所以在程序中,不管你的对象类型如何转换,但该对象内部的虚表指针是固定的,所以呢,才能实现动态的对象函数调用,这就是C++多态性实现的原理。原创 2015-07-16 22:36:18 · 599 阅读 · 0 评论 -
【leetcode】Construct Binary Tree from Preorder and Inorder Traversal
#include<iostream>#include<vector>#include<map>using namespace std;struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int val):val(val),left(NULL),right(NULL){};};原创 2015-07-16 17:28:07 · 189 阅读 · 0 评论 -
[leetcode]Unique Binary Search Trees II
#include<iostream>#include<vector>using namespace std;struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int val):val(val),left(NULL),right(NULL){};};class Soluti原创 2015-07-16 22:40:57 · 239 阅读 · 0 评论 -
取出整型数据中存在指定整数的数据,并按照升序排列返回
取出整型数据中存在指定整数的数据,并按照升序排列返回。 要求实现方法: public static int[] calcTimes(int[] num, int value); 【输入】 num:整型数组; value 指定的整数 【返回】 按照升序排列返回整型数组中包含指定整数的元素 示例 输入:num = {12345,654123,98764,12365原创 2015-08-04 23:24:26 · 1538 阅读 · 1 评论 -
去除字符串中的重复子字符串
#include<iostream>#include<string>using namespace std;int delete_sub_str(char *input,char *sub_str,char *result){ int count=0; int len = strlen(sub_str); char *p = result; while(*in原创 2015-08-04 23:26:02 · 869 阅读 · 0 评论 -
【leetcode】Evaluate Reverse Polish Notation
#include<iostream>#include<stack>#include<string>#include<vector>using namespace std;class Solution{public: double fun(vector<string> a) { stack<string>result; for(int i=0原创 2015-07-11 15:55:16 · 167 阅读 · 0 评论 -
【leetcode】Largest Rectangle in Histogram
#include<iostream>#include<vector>using namespace std;class Solution{public: int fun(vector<int> a) { int i; int maxlength=0; for( i=0;i<a.size();i++) {原创 2015-07-11 14:01:31 · 200 阅读 · 0 评论 -
寻找最大的K个数
运用快速排序的思想解决问题#include<stdio.h>#include<stdlib.h>#include<time.h>#define SWAP(X,Y) {int temp;temp=X;X=Y;Y=temp;}//快速排序的划分函数int partition(int a[],int l,int r){ int i,j,x; srand((unsigned)tim原创 2015-05-15 21:53:11 · 314 阅读 · 0 评论 -
printf函数使用
#include <stdio.h>int main(){ int i=6; printf("%d ",++i); printf("%d ",--i); printf("%d ",i++); printf("%d ",i--); printf("%d ",-i++); printf("%d ",-i--);}结果 7 6 6 7 -6 -7#include <st原创 2015-05-20 14:55:13 · 364 阅读 · 0 评论 -
求树中两个节点的最近公共祖先
(编程之美)求树中两个节点的最短公共祖先。 情况一:二叉搜索树 二叉搜索树都是排序过的,位于左子树的节点都比父节点小,而位于右子树上面的节点都比父节点大。 如果当前节点的值比两个结点 的值都大,那么最低的共同的父节点一定是在当前节点的左子树中,于是下一步遍历当前节点的左子节点。 如果当前节点的值比两个结点的值都小,那么最低的共同的父节点一定是在当前节点的右子树中,于是下一步遍原创 2015-06-19 16:09:15 · 587 阅读 · 0 评论 -
如何将一个排序二叉树转换为循环双向链表
方法一:1.递归处理左子树,得到一个链表 2.递归处理右子树,得到一个链表 最终链表=左子树链表+根节点+右子树链表 方法二:新建双向循环链表,通过中序遍历排序二叉树,依次获得所有节点,并将节点存入新建的链表,得到最终的双向循环链表。#include<iostream>#include<stack>using namespace st原创 2015-06-23 20:20:43 · 560 阅读 · 0 评论 -
运用栈非递归遍历二叉树
1.先序遍历一颗二叉树 方法一:void preTree1(TreeNode* root){ if(!root) return ; stack<TreeNode*>treestack; cout<<root->data<<' '; treestack.push(root); while(treestack.size()) {原创 2015-06-24 16:07:12 · 387 阅读 · 0 评论 -
Single Number II
leetcode Single Number II 描述 Given an array of integers, every element appears three times except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could原创 2015-07-01 15:11:32 · 218 阅读 · 0 评论 -
Gray Code
leetcode 里面Gray code题的多种解法#include<iostream>#include<vector>#include<stack>using namespace std;class Solution1{public: vector<int>grayCode(int n) { vector<int>result; vect原创 2015-06-30 17:01:09 · 179 阅读 · 0 评论 -
【leetcode】 Anagrams
代码1:#include<iostream>#include<string>#include<vector>#include<algorithm>#include<map>using namespace std;class Solution{public: string fun(vector<string> str) { string a="";原创 2015-07-08 15:58:54 · 212 阅读 · 0 评论 -
【leetcode】Reorder List
描述 Given a singly linked list L : L0 -> L1->…-> Ln-1 -> Ln, reorder it to: L0 ->Ln -> L1 ->Ln-1 -> L2 -> Ln-2 ->… You must do this in-place without altering the nodes’ values. For example, G原创 2015-07-03 10:15:33 · 201 阅读 · 0 评论 -
【leetcode】Longest Valid Parentheses
#include<iostream>#include<stack>#include<vector>#include<string>#include<algorithm>using namespace std;struct Node{ int key; char c; Node(int key,char c):key(key),c(c){};};class So原创 2015-07-11 10:56:46 · 151 阅读 · 0 评论 -
LRU Cache的C++实现
方法一:双链表+哈希表map#include<iostream>#include<map>using namespace std;struct Node{ int key; int value; Node* pre; Node* next; Node(int key=-1,int value=-1):key(key),value(value),pre(原创 2015-07-05 16:02:44 · 351 阅读 · 0 评论 -
对给定字符串,取出它的子字符串,并把子字符串按照长度排序
#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;bool myfunction (const string str1,const string str2) { return (str2.length() < str1.length());}void my原创 2015-08-04 23:28:25 · 457 阅读 · 0 评论