06 2018 档案
摘要:题目 请编写一个函数,检查链表是否为回文。 给定一个链表ListNode pHead,请返回一个bool,代表链表是否为回文。 测试样例: 解法 想法是这样,找到链表的中点,从中点之后的链表数据用栈进行存储;然后从链表的头部开始依次遍历直到中点处,每一次遍历都与栈的top进行比较,如果不相等就证明不
阅读全文
摘要:题目 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。 给定一个string iniString为待压缩的串(长度小于等于10000),保证串内字符均由大小写英文字母
阅读全文
摘要:题目 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。 给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。 测试样例: 解答 题目要求相当于“原地算法”,所以就可以简单的把字符串
阅读全文
摘要:题目 请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。 测试用例
阅读全文
摘要:前言 这是一篇个人刷题导向博客 2018.5 2018.6 最近压力太大、不顺心的时候也很多。一方面在阿里5面的时候,回答算法问题不是很好,出的智力题自己也没答出来,感觉可能要跪,自己的基础还是太差.........同时最近在考试月,各种考试即使复习了,在考场上还是出了各种问题;加上导师布置的论文和
阅读全文
摘要:前言 Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。这时候,就需要使用其他的算法来求解最短路径,Bellman Ford算法就是其中最常用的一个。 在网络路由中,RIP协议(距离向量路
阅读全文
摘要:前言 最近面试的时候面试官问了这样的问题,自己虽然大致知道他们之间的区别,但当时面试时有些逻辑混乱。所以面试完想好好总结一番。 虚函数表 虚函数是通过一张虚函数表实现的,在这个表中主要是一个雷的虚函数的地址表;这张表解决了继承、覆盖的问题。在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以
阅读全文
摘要:前言 最近自己的学长面试的时候遇到这一道题了,然后把这道题出给了我。我的第一想法是根据前序遍历建立一个树结构,然后根据能否建立树来判断。但是题目要求不能重建树,所以自己确实不会做。在网上看了别人的解答才恍然大悟!这里总结一下大神们的解法。 关于istringstream 首先我们肯定要用istrin
阅读全文
摘要:[TOC] 二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题思路:从右上角的元素进行判断,如果大于target说明这一列肯定都不是,所以将列数见一;如果小于t
阅读全文
摘要:阿里二面准备 前言 不知道只会C++和python的我面试怎么是在Java的研发岗位上,不过也没差。占几个坑来复习一下: 堆与栈的区别 1 堆大栈小(针对虚拟地址空间)。例如深层次的递归可能造成栈溢出。 2 动态分配内存时栈要快于堆。栈的分配函数被定义成内联函数,并且栈分配内存时仅仅需要修改栈帧(栈
阅读全文