面试oj
Prince Rupert's Drop
这个作者很懒,什么都没留下…
展开
-
bfs,go里邻接表的写法,queue的写法
很感谢这位老哥,一下子打通了很多go的知识点!func findWhetherExistsPath(n int, graph [][]int, start int, target int) bool { edges := make([][]int,n) Flag := make([]int,n) for i:=0;i<len(graph);i++{ edges[graph[i][0]] = append(edges[graph[i][0]],graph[i][原创 2020-06-23 23:29:25 · 274 阅读 · 0 评论 -
只出现一次的数字-leetcode136
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4用异或算法很快就可以解决。。也提示了以后遇到相似问题可以考虑这个方式代码:class Solution {pub...原创 2020-01-13 21:41:44 · 63 阅读 · 0 评论 -
有序数组转为二叉平衡搜索树-leetcode108
给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5用了中序遍历做的,学到了一个挺好的东西:mid=l+(r-l)/2,这样就可以避免(l+r)的溢出了!以下是解决代码class Solution {public: TreeNo...原创 2020-01-12 21:56:52 · 88 阅读 · 0 评论 -
二叉树的层次遍历(逆层次遍历) LeetCode-107
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7],3/\9 20/ \15 7返回其自底向上的层次遍历为:[[15,7],[9,20],[3]]代码为:class Solution {public: vector<vec...原创 2020-01-12 20:00:15 · 452 阅读 · 0 评论 -
对称二叉树对比-LeetCode101
自己写的…简单记录下吧,要注意空树情况(好久没一遍ac了)用递归的版本(跑的慢):class Solution {public: bool go(TreeNode* root1,TreeNode* root2){ if((root1==NULL&&root2!=NULL)||(root1!=NULL&&root2==NULL))retu...原创 2020-01-12 18:52:38 · 71 阅读 · 0 评论 -
求平方根-牛顿迭代法
其实数值分析的时候应该可能教过?但忘记了。。重新复习一遍叭!代码:class Solution {public: int mySqrt(int x) { long int r=x; if(x<=1)return int(x); while(r>x/r) r=(r+x/r)/2; return int(r); ...原创 2020-01-12 15:50:03 · 158 阅读 · 0 评论 -
一些字符串匹配的算法
c++版本库函数:class Solution {class Solution {public: int strStr(string haystack, string needle) { if(needle.empty()) return 0; int pos=haystack.find(needle); re...原创 2020-01-11 15:00:29 · 113 阅读 · 0 评论 -
北理面试-围圈报数
题目描述N 个人围成一圈顺序编号,从1 号开始按1、2、3 顺序报数,报3 者退出圈外,其余的人再从1、2、3 开始报数,报3 的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环行链表编程。输入描述:输入第一行为整数m表示有m组测试数据,接下来m行每行一个整数N,N不超过50。输出描述:输出m行,每行表示题目所求,用空格隔开。示例1143 2 4 1即环形...原创 2019-12-29 21:15:36 · 127 阅读 · 0 评论