- 博客(16)
- 收藏
- 关注
原创 leetcode String to Integer (atoi)
一个看似很简单的问题。 然而遇到这样一个问题 int sum=0; sum-=pow(10,2) sum竟然等于-99; 原因是pow参数和返回类型都是double,转型为int会丢失精度。 然后把sum改为double,输出就是对的,也不是-100.000,C++ cout自动格式化。
2017-08-05 15:23:47 269
原创 linux ELK(filebeat)环境搭建中加入kafka消息队列的详细介绍(菜鸟新手级别)
本文所使用的软件版本如下filebeat 5.4.0,elasticsearch 5.4.0,kibana 5.4.0, 最近公司需要做实时日志分析系统,在网上查了很多资料,发现ELK是最适合的,而且是开源,官方文档还算详细。 尽管ELK环境搭建在网上一搜一大片,即使如此我还是花了好几天的时间才能搭好,因为其中很多很多细节网上没有提到。所以希望将我搭的过程中遇到的问题分享出来
2017-05-26 18:58:31 19401 3
原创 Longest Palindrome
leetcode Longest Palindrome 用map找每个元素出现个数,result +=偶数出现的次数,若其中有奇数次,-1取偶数次,最后+1即可。 ######注意可以用unorderd_map提高效率。 代码如下:class Solution { public: int longestPalindrome(strin
2017-04-21 00:07:05 351
原创 Kth Smallest Element in a BST
这道题不难。 但是卡了一会,原因是if(count=k-1) 我没写==。 然后突然想起吉林大学的一位C++老师,碰到 这种情况,我们要写k-1 ==count!!! 递归思路如下 1.若左子树有k-1个节点,返回根的值 2.若左子树有多余k-1个,则在左子树找第k小的 3.若左子树少于k-1个,则在右子树找 k-左子树节点数-1小的 代码如下:cl
2017-04-20 16:24:56 224
原创 leetcode 476. Number Complement
本题比较简单,从左到右找到第一个1,也即确定mask。 若n&mask == 1 则n=n-mask 若n&mask ==0 则 n= n+mask; 代码如下 class Solution { public: int findComplement(int num) { int mask=pow(2,30); cout
2017-04-18 00:25:45 163
原创 leetcode 461. Hamming Distance
一.本题熟悉一个算法。 判断一个二进制x有几个1 即x&1 看x的最低位是否为1,然后将x右移再&1即可。知道x为0; 二.代码如下: class Solution { public: int hammingDistance(int x, int y) { int count=0; int result = x^y;
2017-04-17 23:18:39 264
原创 京东面试 终结者C
这道题只A了70%。 但是在编写程序过程中学到了很多细节。 一.memset的使用,赋值是按字节赋值的,也就是第二个参数只能是0-255。 啥是按字节赋值? eg:memset(a,0,sizeof(int)*200),使用00000000给一个字节赋值,而int是4个字节,则每一个int被32个0填充,一共200个int。 那么我们就不可以memset(a,1,sizeof(int)*
2017-04-17 12:38:31 442
原创 leetcode Reverse Linked List II
这道题是给定了位置的逆序。 一.这道题主要是对于少于等于2个节点 和 多于2个节点的情况进行区别。少于2个节点的时候presubhead 是NULL。 当presubhead是null的时候,tail才是头。 presubhead不是null,head才是头。 二.代码 class Solution { public: ListNode* reverseBetween
2017-04-17 12:28:55 214
原创 leetcode Reverse Linked List
这道题题目的hint说,让我们尝试迭代和递归2种做法. (1)迭代比较简单。注意最后头结点的next置为空,还有注意判断空,或者是只有一个节点的时候,这2种情况都直接返回root即可。 (2)主要是递归的做法。 函数功能是逆置一个以head为头的链表,那么可以先逆置head->next的,最后处理head。(可以有->next->next这种写法的) class Solution { p
2017-04-17 12:26:34 191
原创 Convert Sorted Array to Binary Search Tree
这道题总体比较简单~ 巩固基础知识 一.给定有序的数组,如何构建一颗平衡二叉树(平衡二叉树也是二叉排序树的一种)。 二. 还有函数参数的问题,传进来的是一个vector的引用,可以不用管,直接用就好。递归的时候,传入参数使用迭代器写的vector。 三.代码 class Solution { public: vector left; vector right;
2017-04-17 12:12:02 200
原创 leetcode 543. Diameter of Binary Tree
leetcode 543. Diameter of Binary Tree 一.这道题考察的是对题目的理解,主要是最长路径不一定是经过根的。也就是树的diameter为 max(左子树的diameter,右子树的diameter,左子树深度+右子树深度) 注意路径长度是边的数量,所以max的最后一项不要加1 二. 其实真不简单。 难的是思路。题目tag竟然写easy好伤心。。 三.代码
2017-04-15 21:16:40 248
原创 538. Convert BST to Greater Tree
leetcode 538. Convert BST to Greater Tree 一. 这道题我想起了考研时候的二叉排序树的特点~即中序遍历是递增的 但是我又想,只知道中序的话是不能还原出原二叉树的。 然后又去想 递归,具体过程是 计算某个节点的val的时候,必须加他父亲节点还有他的右子树的和,但是当一个节点是他父亲节点的右侧节点时,还得去找父亲的父亲。。所以递归没有想出来。于是求助了答案
2017-04-14 23:41:51 269
原创 leetcode508 Most Frequent Subtree Sum
leetcode508 Most Frequent Subtree Sum 一. 其实本题思想比较简单~ 学习的更多的是map的用法 二. (1)还有第一次运行效率只打败了20%的选手,但是一看其他人的C++程序,用的也是递归方法啊,但是运行只用18ms,我用了23ms,仔细一看,是在递归中就直接找到max了,而我重新定义函数找了一遍。 (2)反正要遍历map的所有元素,那
2017-04-14 19:43:07 242
原创 leetcode 515. Find Largest Value in Each Tree Row
Hi,又见面了~第二天,难度和之前差不多。 515. Find Largest Value in Each Tree Row 一.犯的错误 (1)逻辑上的问题都是在调试中发现的,比如这题在没加最后一句push_back的时候,发现输出只有2层的输出,最后一层没输出。然后才发现是最后一个if没走到,所以加了一个push_back 二。 初始max的赋值我naive的认为初始化-1
2017-04-13 21:35:58 208
原创 Find Bottom Left Tree Value
第一篇文章,纪念自己的leetcode之路,这段时间的面试让我深深的知道自己coding能力的不足,沉下心来学习吧~ 一. leetcode 513 Find Bottom Left Tree Value 这道题其实开始的时候也是想层次遍历,层次遍历真的是最简单的一种二叉树的遍历方式,因为逻辑很清晰不需要递归。本题只需要当深度首次+1的时候记录下节点即可。 于是第一种解法为 int fin
2017-04-12 18:46:19 419
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人