排序:
默认
按更新时间
按访问量

剑指offer--调整数组顺序

题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路 维护两个指针,第一个指针初始化为指向数组的第一个数字,它只能往后移;第二个指针初始化为指向数组的最后一个数...

2018-05-22 10:55:03

阅读数:51

评论数:0

剑指offer---表示数值的字符串

题目 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。 代码 #include&...

2018-05-17 17:04:16

阅读数:42

评论数:0

剑指offer-正则表达式匹配

题目 请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹...

2018-05-17 14:01:57

阅读数:43

评论数:0

剑指offer-打印从1到最大的N位数

题目 输入数值n,按顺序打印从1到最大的n位数,例如输入n=3,则从1,2,3,一直打印到999 思路 若使用循环遍历 1- 999…9 并依次输出,当位数n过大时,无论将其存入int或long或long long都会溢出,故使用字符串来模拟数字加法 代码 #include&...

2018-05-17 10:17:43

阅读数:108

评论数:0

(待扩展)读取一个文件统计词频

#include<iostream> #include<fstream> #include<string> #include<map&a...

2018-05-14 11:00:40

阅读数:41

评论数:0

剑指offer-数值的整数次方

题目:实现double Power(double base, int exponent), 求base的exponent次方,不得使用库函数,同时不需要考虑大数问题。#include<iostream> using namespace std; //主要考点在于需要考虑特殊情况 dou...

2018-05-05 11:26:43

阅读数:38

评论数:0

剑指offer-剪绳子

题目 给你一根长度为n绳子,请把绳子剪成m段(m、n都是整数,n&amp;gt;1并且m≥1)。每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]* k[1]*……*k[m]可能的最大乘积是多少?例如当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此 时得到最大...

2018-04-20 11:11:09

阅读数:43

评论数:0

剑指offer-机器人的运动范围

题目 地上有一个m行n列的方格。一个机器人从坐标(0, 0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35, 37),因为3+5+3+7=18。但它不能进入方格(35, 38),因为3+5+3+8...

2018-04-16 19:57:14

阅读数:26

评论数:0

剑指offer-矩阵中的路径

题目 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。思路 回溯法:用回溯法解决问题就是,在某一步选择了其中一个...

2018-04-11 15:55:55

阅读数:35

评论数:0

剑指offer-查找

题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 思路 重点说一下二分查找法。如果是在排序的数组(或者部分排序的数组)...

2018-03-21 11:26:21

阅读数:39

评论数:0

剑指offer-斐波那契数列

题目 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 思路 递归不行,会超时,所以就用动态规划思想,利用一个数组来保存中间结果。#include<iostream> using namespace std; int Fibonacci(int n)...

2018-03-21 11:14:27

阅读数:27

评论数:0

剑指offer-二叉树的下一个节点

题目 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路 根据中序遍历的特点,要找到一个节点的下一个节点无非就是三种情况:1、有右子树,这时只需要把其右孩子作为下一个遍历的(并不是要找的)节点,然后沿着...

2018-03-20 08:54:43

阅读数:26

评论数:0

剑指offer-重建二叉树

题目 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。 思路 先序遍历的第一个节点即为根...

2018-03-19 15:54:02

阅读数:36

评论数:0

剑指offer-从尾到头打印链表

题目 输入一个链表的头节点,从尾到头反过来打印出每个节点的值。 思路 直接用栈。 代码 struct ListNode { int m_nValue; ListNode*m_pNext; }; void PrintListReverse(ListNode*pHead)...

2018-03-19 10:35:04

阅读数:27

评论数:0

剑指offer-替换空格

题目 请实现一个函数,把字符串中的每个空格替换成“20%”。 思路 从后往前替换,这样可以减少移动次数。 在合并两个数组(包括字符串)时,如果从前往后复制每个数字,则会重复移动某些数字多次,那么就可以考虑从后往前复制。 代码 #include&amp;lt;iostream&a...

2018-03-18 13:48:56

阅读数:26

评论数:0

剑指offer-二维数组中的查找

题目 在一个二维数组中,每一行从左到右递增。每一列从上到下递增。输入一个二维数组和一个整数,判断数组中是否含有这个整数。 思路 每次和数组的右上角的数字比较,若要找的数比右上角的数字大,则排除右上角数字所在的行,若要找的数比右上角的数字小,则排除右上角数字所在的列。如此就可以一步步缩小范围。...

2018-03-18 10:40:24

阅读数:43

评论数:0

剑指offer-数组中重复的数字

题目一 在一个长度为N的数组里所有数字都在0~n-1的范围内。请找出数组中任意一个重复的数字。例如,输入{2,3,1,0,2,5,3},则输出2或者输出3。 思路 数组中所有数字都在0~n-1范围内。如果这个数组中没有重复的数字,那么当数组排序之后,数字i应该出现在下标为i的位置上。由于数组...

2018-03-17 17:08:46

阅读数:40

评论数:0

动态规划之背包问题

问题描述: 问题可以描述为:有 N 件物品和一个容量为 V 的背包。第 i 件物品的体积是 s[i],其价值是 v[i]。求解,在不超过背包容量情况下,将哪些物品装入背包可使价值总和最大。思路: 动态规划。令V[i][j]代表,从前i项物品中取出若干项,装入体积为j的背包中能得到的最大价值。那...

2018-01-23 15:37:31

阅读数:67

评论数:0

区块链实例以太坊原理探讨

摘 要 区块链的本质上是一个去中心化的数据库。它使用密码学的相关方法产生数据块,每一个数据块中包含了一次比特币网络交易的所有信息,因此可以用来验证其信息的有效性和生成下一个区块。 区块链格式首先被应用于比特币。2008年10月,在中本聪的论文中,“区块”和“链”这两个字是被分开使用的,而在被...

2018-01-22 15:31:34

阅读数:1542

评论数:0

排序算法汇总

1.冒泡排序 冒泡排序,相邻的数据进行两两比较,小数放在前面,大数放在后面,这样一趟下来,最小的数就被排在了第一位,第二趟也是如此,如此类推,直到所有的数据排序完成。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我们不会无聊地把他们俩交换;如果两个相等的元素没有...

2017-11-02 09:46:34

阅读数:91

评论数:0

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