- 博客(101)
- 收藏
- 关注
原创 ZOJ1011
#include <stdio.h>#include <stdlib.h>#include <memory.h>#include <string.h>int n, m, k, lev;//树的层数 int transition[155][155];//存放表格中数据 char tree[11][2222]; int dfs...
2018-06-25 16:36:37 454
原创 zoj1088
//约瑟夫环问题,其实就是循环链表,考察节点的删除操作#include <stdio.h>#include <stdlib.h> int n; struct node { int num; struct node * next; }; void init(node ** p)//必须要双星,node*表类型(即...
2018-06-25 16:29:39 335
原创 ZOJ1203
/*prim算法*/ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int n; bool visit[111]; double low[111]; double distance[111][111]; ...
2018-06-25 15:56:18 269
原创 ZOJ1013
#include <iostream>#include <cstring>#define CAVARAN_MAX 101#define EACH_EQUIPMENT_MAX 501#define MIN2(x, y) (x < y ? x : y)#define MIN3(x, y, z) ((x < y ? x : y) < z ? (x &...
2018-06-22 16:48:35 319
原创 win7(64bit)下pyspider的安装
在windows下安装pyspider真是费劲啊,废话不多说,贴出来以飨来者吧。1、准备工作:python和pip的安装(http://www.tuicool.com/articles/eiM3Er3/)注意:python最好装32bit的,反正我装64bit的后面会有各种意想不到的错误。2、安装pycurl控制台中输入:pip install pycurl3、安装lxml,下
2016-11-24 10:28:40 2512
原创 剑指offer:第一个只出现一次的字符位置
题目描述在一个字符串(1(位置索引从0开始),若为空串,返回-1public class Solution { public int FirstNotRepeatingChar(String str) { int flag = -1; if(str.length() == 0) return flag;
2015-12-20 16:02:36 525
原创 剑指offer:丑数
题目描述把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。//超时代码class Solution {public: bool uglyNum(int num) { while(num)
2015-12-15 00:30:54 421
原创 两数交换
第一种方法:int tmp;//中间变量tmp = a;a = b;b = tmp;第二种方法://原理:一个数被另一数异或偶数次还是它本身a ^= b;b ^= a;a ^= b;第三种方法:a = a + b;b = a - b;a = a - b;第四种方法:b = a + b - (a = b);
2015-12-12 12:23:52 373
原创 剑指offer:把数组排成最小的数
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。class Solution {public: string s, mn = "x"; string PrintMinNumber(vector numbers) { if (numbe
2015-12-08 19:17:51 395
原创 剑指offer:连续子数组的最大和
题目描述:例如{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。 class Solution {public: int FindGreatestSumOfSubArray(vector array) { if (array.size() == 0) return 0; vector v; int i; fo
2015-12-03 20:48:51 394
原创 剑指offer:最小的K个数
题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。PS:一开始想到map是按key值升序排列,就新建了一个map,value存放数字出现的次数,没想到内存超出范围。class Solution {public: vector GetLeastNumbers_Solution(vector
2015-12-03 13:51:23 403
原创 剑指offer:数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。class Solution {public: int MoreThanHalfNum_Solution(vector numbers) {
2015-12-02 23:23:37 460
原创 剑指offer:字符串的排列
题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba(结果请按字母顺序输出)。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。class Solution {public: string tmp; vector res;
2015-12-02 21:50:00 440
原创 剑指offer:二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NUL
2015-12-01 17:06:09 404
原创 字节对齐(struct 和 union)
在没有#pragma pack宏的情况下,字节对齐应遵循以下三个基本原则:1、数据成员对齐规则:结构体(struct)或联合(union)的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始。2、结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储。3、收尾工作:结构
2015-11-29 12:44:36 872
原创 迅雷2016研发工程师笔试题
以下关于指针的说法,正确的是()A int *const p与int const *p等价B const int *p与int *const p等价C const int *p与int const *p等价D int *p[10]与int (*p)[10]等价答案:C解析:A项前者表明指针变量p是const
2015-11-28 16:50:24 1023
原创 剑指offer:复杂链表的复制
题目描述:输入一个复杂链表,每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点(可能为NULL),求输出复杂链表的拷贝(返回拷贝链表的头结点即可)思路:一般复制一个简单链表就这么遍历一遍就好了,这个复杂链表,比简单链表多的地方就在于多了一个random的指针,也就是说在建立完简单链表之后,如何在新的链表中找到random对应的地址。我们已知的是旧的节点
2015-11-20 16:15:23 475
原创 剑指offer:二叉树中和为某一值的路径
题目描述:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(N
2015-11-18 22:51:16 358
原创 剑指offer:二叉搜索树的后序遍历序列
题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果,如果是则输出Yes,否则输出No(假设输入的数组的任意两个数字都互不相同)class Solution {public: bool Verify(vector seq) { int len = seq.size(); if(!len || len =
2015-11-17 21:10:57 360
原创 观《绣春刀》后作
观罢有感,非是影评。英主年少兼勇武,一朝魏阉入罪罟。五虎十孩皆奔散,夕贬凤阳守陵主。凤阳未必肯安身,天公犹恨阻急雨。上意不甘忽逮治,流贼喝问来者谁。脱衣掷地敢轻试,雨滴刀背声澌澌。鱼服绣春初纵横,十步一人不留行。尔曹身名皆在我,兔走天上落鶻鹰。奈何敌势仍余烈,重赏不能尽所灭。上楼擒得一人首,便是功成向帝阙。白刃指向俎上颈,求命新鼓好唇舌。茵溷从来有意偏,荣辱只在顾盼间。莫道钱财如粪土,
2015-11-17 13:57:24 758
原创 剑指offer:树的子结构
题目描述:输入两颗二叉树A,B,判断B是不是A的子结构/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/cla
2015-11-17 12:03:54 383
原创 剑指offer:顺时针打印矩阵
题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10这道题如果跟着每个数字一个一个打印将会很麻烦,下标的频繁变换肯定会把自己绕晕,其实这道题有个相对简单一些的方法,就像
2015-11-17 11:44:09 415
原创 剑指offer:包含min函数的栈
题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数class Solution {public: stack s, mn; void push(int value) { s.push(value); if(mn.empty()) mn.push(value); el
2015-11-17 11:20:50 418
原创 剑指offer:栈的压入、弹出序列
题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列这道题考察的是STL中的栈,与ZOJ上的火车进站问题一样。class Solution {public:
2015-11-17 11:12:03 317
原创 剑指offer:从上往下打印二叉树
这道题明显是广度优先,一看就知道是用队列这种数据结构,其实不用STL的队列也可以做,那就是要多加一个变量来记录树的深度,应该会比用队列麻烦,在这里直接“拿来主义”了。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) :
2015-11-17 10:45:35 391
原创 分解质因数
#include #include #include using namespace std;bool isPrime(int n){ for(int i = 2; i <= (int)sqrt(n); i++) { if(n % i == 0) return false; } return true;}i
2015-11-07 12:43:40 391
原创 求平方根
#include #include #include #define E 1e-11using namespace std;int main(){ double a; cin>>a; double x0, x1; x0 = a / 2.0; while(1) { x1 = 0.5 * (a + x0 * x0) /
2015-11-06 15:27:10 473
原创 最少钱币数
这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。 你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。#inc
2015-11-06 12:37:14 647
原创 剑指offer:合并两个排序的链表
#include #include #include using namespace std;struct ListNode{ int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};class Solution{public:
2015-08-16 22:24:23 387
原创 剑指offer:二进制中1的个数
class Solution {public: int NumberOf1(int n) { int c = 0; while(n) { n = n & (n - 1); c++; } return c; }};
2015-08-13 19:52:30 418
原创 360:挑选镇长
#include #include using namespace std;int main(){ int T, n, m, a, b, i, j, cnt; vector v[100001]; vector res; cin>>T; while(T--) { res.clear(); for(i = 0;
2015-08-13 15:07:49 958
原创 360:最后一个字符
正在挑战一个CrackMe的你,把需要填写的前面几位密码都正确猜出了,可是这最后一位密码,好像藏得有点深。CrackMe的作者还挑衅般的在里面藏了个.tar.gz文件,解压缩出来,里面写道你要的最后一个字符就在下面这个字符串里。这个字符是下面整个字符串中第一个只出现一次的字符。 (比如,串是abaccdeff,那么正确字符就是b了)然而下面给出来的字符串好像太长太长了,单靠人力
2015-08-12 23:11:20 775
原创 leetcode:Integer to Roman
class Solution{public: string str(int x, int y) { string s; int i; if(x == 0) { if(y > 0 && y < 4) { for(i = 0; i < y;
2015-08-05 16:47:47 322
原创 leetcode:Container With Most Water
class Solution{public: int maxArea(vector& height) { /*int i, j, mx = 0; for(i = 0; i < height.size(); i++) { for(j = i + 1; j < height.size(); j++)
2015-08-04 21:56:02 328
原创 leetcode:Longest Palindromic Substring
class Solution{public: string longestPalindrome(string s) { string sNew, longest; int i, j = 0, iMax = 1, id = 1; int p[2222]; memset(p, 0, sizeof(p));
2015-08-02 20:17:22 360
原创 leetcode:Longest Substring Without Repeating Characters
class Solution{public: int lengthOfLongestSubstring(string s) { int i, j, k, len, preLen = 0, maxLen = 0; map m; map :: iterator it; for(i = 0; i < s.size();
2015-08-01 19:09:24 346
原创 leetcode:the skyline problem
class Solution{public: struct node { int x, heightIndex; bool leftOrRight; node(int _x, int _heightIndex, bool _leftOrRight):x(_x), heightIndex(_heightIndex), leftOrR
2015-07-31 23:21:41 433
原创 leetcode:Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!.Note: Your solution should be in logarithmic time complexity.class Solution {public: int trailingZeroes(int n) { int c
2015-07-15 22:46:07 347
原创 leetcode:Add Two Numbers
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
2015-07-15 21:37:05 454
原创 leetcode:Two Sum
Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up to the target, w
2015-07-12 22:45:29 443
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人