剑指offer
文章平均质量分 56
云乐QAQ
这个作者很懒,什么都没留下…
展开
-
HashMap学习笔记
一个有梦想的算法,把线性查询O(n)的复杂度想缩小到O(1)把任意长度转换为固定输出最底层的数据结构是数组,通过hash算法取模,然后再用寻址算法找到唯一的位置。hash算法和寻址算法二进制位运算优化hash算法优化hashcode就是不同对象拥有的唯一的散列码,在hashmap里面,使用了hash算法对hashcode进行了进一步的优化:对key的hash值和它自己右移十六位之后进行异或操作这样保证了hashcode的低十六位同时保留了高十六位的特征,使后边寻址算法的时候高十六位和低十六位原创 2020-06-09 17:19:05 · 139 阅读 · 0 评论 -
剑指offer 按之字形打印二叉树
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。最开始想用一个queue,因为一层一层的打印,这不就是bfs吗,然后写好了一分析就处问题了,比如某一层从左往右放,那么他的下一层只能局部的从右往左,因为queue的先进先出限制了顺序。然后发现用两个stack可以解决这个问题。如果我这一层从左...原创 2020-04-29 14:18:06 · 94 阅读 · 0 评论 -
剑指offer 删除链表中的重复节点(如果链表是无序的情况)
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5我是真的傻了,写了大半天想了大半天,牛客上面又不让运行,节点到处指,好不容易过了,结果一看别人代码那么简单, 咋回事,原来给的链表是排好了序的,不是我想的乱序的...原创 2020-04-28 18:30:02 · 122 阅读 · 0 评论 -
剑指offer 表示数值的字符串
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。这题用ifelse去挨个判断情况也能做出来,但是我看题解别人挺多使用正则表达式的,正好之前学爬虫学过,这里试试java的正则匹配:用的是S...原创 2020-04-28 14:04:25 · 89 阅读 · 0 评论 -
剑指offer 数组中的逆序对(归并)
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%1...原创 2020-04-24 16:21:52 · 116 阅读 · 0 评论 -
剑指offer 整数中1出现的次数(从1到n整数中1出现的次数)
求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。题目很熟悉,统计一个整数n他的 从1到n中出现1的次数,应该是以前打acm的...原创 2020-04-24 15:59:04 · 95 阅读 · 0 评论 -
剑指offer 复杂链表的赋值(Arraylist解决)
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)链接:https://www.nowcoder.com/questionTerminal/f836b2c43afc4b35ad6adc41ec941dba?toCommentI...原创 2020-04-22 14:45:44 · 120 阅读 · 0 评论 -
剑指offer 反转链表
题目:输入一个链表,反转链表后,输出新链表的表头。我的办法属实写得笨,找到原链表总长度,然后锁定位置到最后一个节点,把这个节点作为新链表表头,然后再逆序的从原链表拿出节点,接在新链表上面,最后别忘了新链表的最后一个节点next=null。/*public class ListNode { int val; ListNode next = null; ...原创 2020-04-20 14:25:00 · 98 阅读 · 0 评论 -
剑指offer 重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:果然数据结构是有点硬伤啊。。写了好几个小时思路就是,用前序遍历来确定节点,用中序来确定左右。自己定义两个数组,一个数组存当前节...原创 2020-04-17 21:08:14 · 108 阅读 · 0 评论