随笔分类 - Leetcode+题
摘要:题:输入三个数a,b,n,输出a和b不大于n的公倍数的所有个数。 这题的思想是先求得a和b的最大公约数,然后用a和b的积除以最大公约数,得到最小公倍数,再持续加上最小公倍数,直到超过n,记下n的个数。如:8,12,100,最大公约数为4,则最小公倍数为24。则公倍数为:24、48、72、96,即总共
阅读全文
摘要:题目:输出1到1000之间的所有素数 质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。 思路:偶数肯定不是素数,所以递增的时候可以以奇数的形式递增,再在奇数中去掉非质数的数。 结果如下:
阅读全文
摘要:题目:有多个case,每个case中有一个案例库,求给定字符串是否是案例库中的子串,若是输出个数。 输入:第一行,输出案例库中字符串的个数N,下面N行数为每一个字符串;给定字符串的个数为M,下面M行为给定字符串 例子: 解法:用给定的字符串轮流的和案例库中字符比较,看是否是其子串,若是,则个数加1。
阅读全文
摘要:题:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、×、÷四则运算符号。 思路:因为不能使用四则运算,对数字做运算,我们只能考虑位运算了。我们先不考虑进位,对两数字进行异或运算,这样,就可以得到一个没有进位的和,因为若是进位,则两数对应位上的值肯定都是为1的,所以,我们可以通过两数求&运算
阅读全文
摘要:题目:找出无序数组中第Kth大的数,如{63,45,33,21},第2大的数45。 输入: 第一行输入无序数组,第二行输入K值。 该是内推滴滴打车时(2017.8.26)的第二题,也是《剑指offer》上最小k个数的变形。当时一看到题,这个不是用快排吗?然后就写了,结果始终没有通过,遗憾的超时提交了
阅读全文
摘要:一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离? 输入描述: 思路:这题的关键在如何找到可以去除的那一
阅读全文
摘要:题:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路:分三种情况: (1)当前结点有右子树,则其下一个结点就是右子树中的最左子结点; (2)当前结点是其父结点的左子结点,则下一个为其父结点; (3)当前结点既
阅读全文
摘要:题:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,size<=
阅读全文
摘要:题:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路一: 一个个数试探:对任一数,若能被2整除,连续除以2;若能被3整除,连续除以3;若能被5整除,连续除以5,最后
阅读全文
摘要:题:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 思路:若是只要返回最小一个元素,只要每次加入时,和栈顶元素对比就行,小于栈顶元素就先删除栈顶元素,然后加入。但若是想所有元素的出栈顺序是从小到大呢? 这时我们需要一个辅助栈,辅助栈中从大到小(栈底到栈顶)依次存放当前数据栈中
阅读全文
摘要:题:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 方法一:把一个整数减去1,再和原整数做与运算,会把该整数最右边的1变为0。如,1100,其第二位是从最右边数起的第一个1,见1以后变为1011,即第二位左边的1保持不变,右边的从0变为1,与原先的数1100做与运算,结果为1000
阅读全文
摘要:题:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 方法一:O(n)的算法,不过要改变数组。 思路:利用快排的思想,以最后一个元素为基准,将数组一分为二,左边小于基准,右边大于基准,完成一次趟分割,基准的下标为index,这
阅读全文
摘要:题:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路:常规思路是先排序,(若有)取中间值即可,时间复杂度为O(nlogn)。定义两个
阅读全文
摘要:题:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路:栈为先进后出,队列为先进先出。大致思想是,先将元素放入栈1中,然后将栈1的元素,全部放入栈2中。值得注意的是,当栈2中有元素时,应先出栈,然后才能将栈1的元素放入栈2中;若还想将元素放入栈1,从而再放入栈
阅读全文
摘要:题:输入一个链表,从尾到头打印链表每个节点的值。 思路:方法比较多,这里列举几种: 1、若是能修改 则反转链表以后,在从头到尾打印; 2、不能修改 (1)使用向量,然后从头到尾遍历,最后反转向量即可; (2)使用栈,利用先进后出的特点 这里的来源是牛客网的题,代码如下: 指针最好都先判空!!!
阅读全文
摘要:题:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 题意:注意这里有两种意思,一是可以创建新的字符串,二是在原字符串上修改 思路:第一种情况,只要从左到右遍历字符串,将空格换成"%20"即可,
阅读全文
摘要:本文是个人对LeetCode中字符串类型题目的总结,纯属个人感悟,若有不妥的地方,欢迎指出。 一、有关数字 1、数转换 题Interger to roman和Roman to integer这两题是罗马数字和整数之间的相互转换,首先要懂得什么是罗马数字以及相应的组数规则。LeetCode的题中给出的
阅读全文
摘要:以下是个人对所做过的LeetCode题中有关链表类型题的总结,博主小白啊,若有错误的地方,请留言指出,谢谢。 一、有关反转链表 反转链表是在单链表题中占很大的比例,有时候,会以各种形式出现在题中,是比较重要的知识点。 (1)题Reorder list中,思路为将链表一分为二,将后者反转以后,然后两链
阅读全文
摘要:本文仅为博主个人总结,水平有限,欢迎大神指出不妥处。 关于二叉树的相关概念可以参见二叉树的百度百科,或binary tree Wiki。 二叉树结点类的常见定义为: 提到二叉树,首先要提到二叉树的四种遍历方式:前序遍历、中序遍历、后续遍历和层次遍历,其中前三种为一类,一般是使用栈(stack)实现,
阅读全文
摘要:一、若二叉树为搜索二叉树 原题链接:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/#/description Given a binary search tree (BST), find th
阅读全文

浙公网安备 33010602011771号