摘要: #寻找数组中只出现一次的数字,一共两个。 ##思路 先思考怎么在一个数组中找到只出现一次的一个数字。 用异或的方法。一个数异或它本身为0,那么对数组中所有的数字都异或,相同的数字抵消,剩下的就是所求的数。 再考虑把数组分离成两个,每个数组各有一个只出现一次的一个数字。把这个数组的所有数字异或后的结果 阅读全文
posted @ 2020-03-06 23:54 four_z 阅读(142) 评论(0) 推荐(0)
摘要: #判断牌是不是顺子 ##描述: JQK分别为11,12,13,大小王为0,大小王能替代任意一个数字。 ##思路: 排序数组。计算0的个数,计算每两个数的间隔的个数。最后比较。 ##代码: bool Iscpntinuous(int* numbers, int len) { if (numbers = 阅读全文
posted @ 2020-03-06 23:37 four_z 阅读(219) 评论(0) 推荐(0)
摘要: #找到两个叶子节点的最低公共节点 ##思路: 1.若这棵树为二叉搜索树的话,根据特性,我们从根节点遍历,若两个叶子节点值都小于根节点值,则最低公共节点一定在左子树,都大于的话在右子树。当一个小于一个大于时,所到达的节点就是最低公共节点。 2.若这棵树有父指针,那么问题可以转化为求链表的第一个公共节点 阅读全文
posted @ 2020-03-06 23:23 four_z 阅读(137) 评论(0) 推荐(0)
摘要: #求n个骰子所有点数出现的概率 ##思路: n个骰子的点数最大值是6n,最小值是n。用两个数组保存点数。第一个数组的第n位是和为n出现的次数。那么下一次循环的第n位的次数是上一次n-1,n-2,n-3,n-4,n-5,n-6次数之和。 ##代码: int g_maxvalue = 6; void P 阅读全文
posted @ 2020-03-06 23:03 four_z 阅读(163) 评论(0) 推荐(0)