编程之美
文章平均质量分 74
LJDaisy
这个作者很懒,什么都没留下…
展开
-
中国象棋的将帅问题
本文根据编程之美1.2中国象棋将帅问题,介绍三种主要方法,并附加代码以及运行结果,最后进行分析。原创 2014-12-15 23:27:10 · 721 阅读 · 0 评论 -
笔试题:求一个数的开方,如根号2
题目:求一个数的开方,如根号2,要求保留到小数点位后10位。解法一:也就相当于求一个数n的开方,我们用二分法进行计算,不断缩小范围,但是double、float不能直接等,最后如果 mid*mid和n的相差不超过一个指定的最小值。那么所求的mid就是我们得到的值。之后我们将它按照小数点之后10位打印出来就行。代码如下:#include#include#include原创 2015-09-11 16:14:20 · 2547 阅读 · 1 评论 -
找一个二叉树的最大路径和
题目:找一个二叉树的最大路径和,该二叉树没有其他的特征,元素大小val是整数,可正可负,输入根节点,输出最大路径和。解题思路:首先一条路径遍历到叶子节点的时候,两个叶子节点的根节点相同,也就是到其根节点的路径上节点的val的和是一样的,此时那个节点的值大,那么最大路劲就会在哪个路径上。这就是递归的最初思想,之后扩展到左右子树,唯一需要注意的是,节点的度不一定都是二,也可以是1.代码如下原创 2015-09-09 20:18:12 · 4201 阅读 · 1 评论 -
数组中出现一次的两个数 leetcode Single Number III
Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.For example:Given原创 2015-09-09 11:28:38 · 960 阅读 · 0 评论 -
去哪儿笔试题:寻找字符串数组中指定字符出现的字符串并排序
3请设计一个高效算法,再给定的字符串数组中,找到包含"Coder"的字符串(不区分大小写),并将其作为一个新的数组返回。结果字符串的顺序按照"Coder"出现的次数递减排列,若两个串中"Coder"出现的次数相同,则保持他们在原数组中的位置关系。给定一个字符串数组A和它的大小n,请返回结果数组。保证原数组大小小于等于300,其中每个串的长度小于等于200。同时保证一定存在包含cod原创 2015-09-09 22:39:36 · 2238 阅读 · 0 评论 -
判断一个字符串是否可以表示一个数值
例子说明 例如,字符串“+100”,“5e2”,“-123”,“3.1416”及”-1E-16”都表示数值,但“12e”,”1a3.14”,”1.2.3”,”+-5”及“12e+5.4”都不是。 表示数值的字符串遵循如下模式:[sign]integral-digits[.[fractional-digits]][e|E[sign]exponential-digits]原创 2015-09-09 11:01:56 · 412 阅读 · 0 评论 -
n个筛子的点数
题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。分析:玩过麻将的都知道,骰子一共6个面,每个面上都有一个点数,对应的数字是1到 6之间的一个数字。所以,n个骰子的点数和的最小值为n,最大值为6n。因此,一个直观的思路就是定义一个长度为6n-n的数组,和为S的点数出现的次数保存到数组第S-n个元素里。另外,我们还知道n个骰子的所有点数的原创 2015-09-07 17:30:53 · 705 阅读 · 0 评论 -
树中两个节点的最低公共父节点
题目:给出两个结点A和B,求解这两个结点的最低公共祖先(LCA)条件(1)树为二叉搜索树思路:二叉搜索树指的是每个父节点有两个子节点,并且节点的左子树均小于节点值,右子树上节点的值大于节点的值。所以我们求两个节点的最低公共父节点应满足(父节点大于其中一个节点且小于另外一个。)如果此时搜索的节点大于这两个节点,则最低父节点应在该节点的左子树中,相反的,此时搜索的节点小原创 2015-09-08 16:00:27 · 695 阅读 · 0 评论 -
N个for改成while的方法
问题如下:手机上面的数字键均对应了几个字符,譬如2对应了a,b,c。问题是当输入一段数字后,求出所有可能的字符组合,(可以想象一下发短信时候的状况,每当按几个数字键后,均给出可能的汉语拼音,当然这个要求就更高了,本题只要求给出所有可能的组合)。举个例子输入4,2键后,则给出GA,GB,GC,HA,HB,HC,IA,IB,IC组合。当然对于大多数人来说就是几层循环就搞定了,每层遍历,内部输出原创 2015-06-08 15:39:00 · 2190 阅读 · 0 评论 -
C++一摞烙饼的问题
问题:假设有n块大小不一的烙饼,那单手最少要翻几次,才能达到最后大小有序的结果呢?分析与解法这个排序问题非常有意思,首先我们要弄清楚解决问题的关键操作——“单手每次抓几块饼,全部颠倒”。每次我们只能选择最上方的一堆饼,一起翻转。而不能一张张地直接抽出来,然后进行插入,也不能交换任意两块饼子。这说明基本的排序办法都不太好用。那么怎么把这n个烙饼排好序呢?由于每次操作都是针对最上面的饼原创 2014-12-15 17:28:19 · 472 阅读 · 0 评论 -
正则表达式匹配
题目:请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配思路:假设字符串为str,模式串为pattern,考虑以下情况:A原创 2015-09-08 17:47:25 · 337 阅读 · 0 评论