摘要: 输入一个递增排序的数组和一个数字S,在数组中查找两个数, 使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 1.自己用迭代器两个指针做的 1.left开头,right指向结尾 2.如果和小于sum,说明太小了,left右移寻找更大的数 3.如果和大于sum,说明太大了,rig 阅读全文
posted @ 2019-08-29 09:57 高颖1995 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 因为两个链表长度不一致 又长又短 而后面部分是公共的,所以求出长链表长度和短链表长度 让长链表把他俩之间的差距先走完,然后两个链表并行的走,直到碰到第一个相同的节点 阅读全文
posted @ 2019-08-28 22:29 高颖1995 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 反正不想用递归 但是一说是排序的 最好又用二分查找,这样比较快; 方法一 :找出重复数字出现第一次的坐标。以及出现最后一次的坐标; 方法二: 利用一点小技巧 阅读全文
posted @ 2019-08-28 21:25 高颖1995 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 复制代码 // 面试题54:二叉搜索树的第k个结点 // 题目:给定一棵二叉搜索树,请找出其中的第k大的结点。 #include <iostream> #include "BinaryTree.h" const BinaryTreeNode* KthNodeCore(const BinaryTreeNode* pRoot, unsigned int& k); const BinaryTreeNod 阅读全文
posted @ 2019-08-28 17:01 高颖1995 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 判断二叉树深度 判断平衡二叉树 (任意节点的左右子树深度相差不超过1 ;那么是) 阅读全文
posted @ 2019-08-28 15:14 高颖1995 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 事实上,我们并不是每个函数都需要跟进去看执行结果的,比如我们在自己的函数中调用printf函数时,并没有钻进去看它是怎么打印的,因为我们相信它能完成打印工作。 如果你相信你正在写的递归函数是正确的,并调用它,然后在此基础上写完这个递归函数,那么它就会是正确的,从而值得你相信它正确。 以上两句话就是要 阅读全文
posted @ 2019-08-28 14:08 高颖1995 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 1 我想的是用map key放值,value放次数。 但是好像不太好 2 set 也可以 遍历输入的vector,当前数字不在set中则插入,否则从set删除(出现两次的数字) 这样结束遍历后set中剩余的就是要找的那两个只出现了一次的数字 3 异或 位运算 本题考查点 阅读全文
posted @ 2019-08-28 10:33 高颖1995 阅读(151) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/linuxAndMcu/p/10259630.html 一、vector介绍: vector(向量): 是一种序列式容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好 阅读全文
posted @ 2019-08-27 16:43 高颖1995 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 1. 其实就是map (key,value) 阅读全文
posted @ 2019-08-23 23:16 高颖1995 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 1.正常就是数一个个遍历 然后看哪个是丑数? 2.牛客网好厉害 阅读全文
posted @ 2019-08-23 22:03 高颖1995 阅读(102) 评论(0) 推荐(0) 编辑