随笔分类 -  剑指offer 和其他算法题

摘要:题目:表示数值的字符串 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 思路分析: 问题就是判断 阅读全文
posted @ 2020-03-13 11:42 pathjh 阅读(198) 评论(0) 推荐(0)
摘要:将刷题过程中陆续碰到的双指针题型进行一下汇总总结 题目1:不重复打印排序数组中相加和为给定值的所有二元组 题目描述 给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序二元组 例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印 阅读全文
posted @ 2020-02-26 14:24 pathjh 阅读(213) 评论(0) 推荐(0)
摘要:题目描述 题目1. 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示 思路分析: 利用1(1的二进制位为0001)依次与该数对应二进制的每一位进行与运算,每次结果为1表示对应二进制的该位为1,结果为0表示对应二进制的该位为0; 那么如何使1与二进制的每位进行比较呢?答案是让1每次比较完 阅读全文
posted @ 2020-02-15 19:33 pathjh 阅读(141) 评论(0) 推荐(0)
摘要:题目:把数组排成最小的数 题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路分析:总的来讲,这是一道排序的题,从最开始的两个结合后开始比较,然后调整顺序,一 阅读全文
posted @ 2018-08-07 00:34 pathjh 阅读(192) 评论(0) 推荐(0)
摘要:题目:最小的K个数 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 分析:这是一道考察排序的题,借此重新复习下常见的排序 方法一:利用堆排序 建立并维持一个只有k个元素的最大堆,后面的元素进来时先与堆顶元素进行比较 阅读全文
posted @ 2018-08-04 22:21 pathjh 阅读(262) 评论(0) 推荐(0)
摘要:题目:整数中1出现的次数(从1到n整数中1出现的次数) 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快 阅读全文
posted @ 2018-07-26 22:36 pathjh 阅读(392) 评论(0) 推荐(0)
摘要:题目:连续子数组的最大和 题目描述:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6, 阅读全文
posted @ 2018-07-23 22:17 pathjh 阅读(193) 评论(0) 推荐(0)
摘要:考完试,做完课设后继续来做题。 题目:数组中出现次数超过一半的数字 题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路分析: 阅读全文
posted @ 2018-07-10 16:55 pathjh 阅读(188) 评论(0) 推荐(0)
摘要:题目:二叉树中和为某一值的路径 题目描述:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 思路:这道题用递归求解是最简单的,好久没有对递归过程进行过分析了,感觉都忘完了。不过,好在我聪明又机智,进过短暂的回 阅读全文
posted @ 2018-06-12 17:12 pathjh 阅读(158) 评论(0) 推荐(0)
摘要:题目:二叉搜索树的后序遍历序列 题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 思路:二叉搜索树首先是有序的,其后序遍历是“左右根”的顺序,根节点总是在后面 如: 期后序遍历是:153 8109 6 阅读全文
posted @ 2018-06-12 15:33 pathjh 阅读(196) 评论(0) 推荐(0)
摘要:题目:从上往下打印二叉树 题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印 思路:考察二叉树的 层序遍历,通常借助使用一个队列或一个栈来完成 若是要求每层数据从左到右保存则用队列,若是要求每层数据从右到左保存则用栈(这种要求一般出现在“之”字型遍历 二叉树的题上) 题目本身好像要求只能 阅读全文
posted @ 2018-06-12 14:53 pathjh 阅读(240) 评论(0) 推荐(0)
摘要:题目:栈的压入、弹出序列 题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。 阅读全文
posted @ 2018-06-11 17:42 pathjh 阅读(2071) 评论(0) 推荐(1)
摘要:题目:包含min函数的栈 题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 思路:这个题也就是要给原有的栈结构增加一个得到当前最小值的函数 我们使用一个额外的栈来进行辅助,设原有的栈为dataStack,辅助栈为minStack 在入栈时,先将其放入dataStack 阅读全文
posted @ 2018-06-11 16:54 pathjh 阅读(149) 评论(0) 推荐(0)
摘要:题目:顺时针打印矩阵 题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路: 阅读全文
posted @ 2018-06-06 14:04 pathjh 阅读(116) 评论(0) 推荐(0)
摘要:题目:二叉树的镜像 题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 思路:二叉树的题,优先考虑递归来做,这个题就是利用递归,逐层交换左右子树,直到叶节点都为空就返回 阅读全文
posted @ 2018-06-06 13:46 pathjh 阅读(125) 评论(0) 推荐(0)
摘要:题目:树的子结构 题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路:树类的题应该优先考虑用递归解,因为这样简单,理解递归也应该用树这种结构来理解,树这种结构好像天生就自带递归的特点 判断B树是不是A树的子结构,我只需要判断3处 1.B树与A树 阅读全文
posted @ 2018-06-06 11:09 pathjh 阅读(141) 评论(0) 推荐(0)
摘要:题目:合并两个排序的链表 题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路;这个题感觉没啥难的,就是分情况讨论下,有循环有递归两种做法 再来个递归的 阅读全文
posted @ 2018-06-05 17:44 pathjh 阅读(176) 评论(0) 推荐(0)
摘要:题目:反转链表 题目描述:输入一个链表,反转链表后,输出链表的所有元素。 思路: 方法一:非递归法 这属于基础题,代码越简洁越好,力求写完一次过。这种题感觉只要在脑海里有个翻转的过程就很容易写出来了,并且保证没有错误 如:1->2->3->4->null 先让1->null 再2->1->null 阅读全文
posted @ 2018-06-05 17:03 pathjh 阅读(217) 评论(0) 推荐(0)
摘要:题目:链表中倒数第k个结点 输入一个链表,输出该链表中倒数第k个结点。 思路:先来看我的解法, 1.从头结点开始遍历整个链表,每到一个节点,k就减1 2.根据k最后的值开始讨论, k>0 说明给的链表长度不够,不存在倒数第k个节点,返回null k==0,说明倒数第k 个恰好为头结点,所以在遍历完链 阅读全文
posted @ 2018-06-05 16:53 pathjh 阅读(150) 评论(0) 推荐(0)
摘要:题目:调整数组顺序使奇数位于偶数前面 题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路:这道题应该是考察排序的,相对位置不变意味着排序算法要稳定 但是如果允许额 阅读全文
posted @ 2018-06-05 16:15 pathjh 阅读(175) 评论(0) 推荐(0)