摘要:
题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 代码一: 1 class Solution { 2 public: 3 int NumberOf1(int n) { 4 int count = 0; 5 while (n) { 6 if (n & 1) { 7 count 阅读全文
摘要:
题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+ 阅读全文
摘要:
题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这 阅读全文
摘要:
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路:首先理 阅读全文
摘要:
题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路: 我们记n个2*1小矩形无重叠地覆盖一个2*n的大矩阵的方法数为f[n], 当n=0, f[0] = 0 当n=1, f[1] = 1 当n=2,我们可以 阅读全文
摘要:
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路:由于前序遍历的第一个数总是树的根节点的值,扫描 阅读全文
摘要:
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 思路1:反转链表,然后遍历输出。(缺点:改变了链表) 思路2:符合先进后出,后进先出(栈)的思想,即先遍历的链表元素后输出,可以用栈来保存先遍历到的元素。 思路3:递归做法,本质上也是栈结构。(如果链表太长,容易导致栈溢出。 阅读全文
摘要:
情况一:在被调用函数中改变传入指针的指向。 具体例子如下: 阅读全文
摘要:
题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路:1、如果这个 阅读全文
摘要:
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 思路:如果这颗二叉树是空的,那么返回true,否则判断此二叉树的左 阅读全文
摘要:
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 分析:如果 阅读全文
摘要:
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路:建立一个头节点,设两个指针,分别指向两个排好序的链表头,比较大小。 以下是不建立头结点的做法: 阅读全文
摘要:
题目描述 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合 阅读全文
摘要:
题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 示例1 输入 输出 思 阅读全文
摘要:
题目描述 统计一个数字在排序数组中出现的次数。 统计一个数字在排序数组中出现的次数。 思路:看到排序数组,首先考虑二分查找。我们找到数字在排序数组中最先出现和最后出现的下标,即得到次数。 阅读全文
摘要:
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We% 阅读全文
摘要:
题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1 阅读全文
摘要:
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2 阅读全文
摘要:
题目描述 输入一个链表,输出该链表中倒数第k个结点。 输入一个链表,输出该链表中倒数第k个结点。 思路:设置两个指针,一个指针从链表第一个结点开始,另一个指针从第k个结点开始,两个指针同时走,当第二个指针到达链表尾时,第一个指针指向倒数第k个结点。 考虑特殊情况:链表长度小于k,那么返回空。 btw 阅读全文
摘要:
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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. 输入一个矩阵,按照 阅读全文
摘要:
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,siz 阅读全文
摘要:
题目描述 在一个二维数组(m x n)中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解法一:由于每一行都是有序的,我们可以针对每一行进行二分查找,时间复杂度为O(ml 阅读全文
摘要:
题目描述 输入一个链表,反转链表后,输出新链表的表头。 解法:迭代解法和递归解法。 一、迭代解法:设置三个指针。主要思想就是边遍历链表的时候边反转。 1 /* 2 struct ListNode { 3 int val; 4 struct ListNode *next; 5 ListNode(int 阅读全文
摘要:
题目:输入两个链表,找出它们的第一个公共结点。 思路:两个单链表从第一个公共节点后所有节点都会一样。可以暴力搜索,复杂度O(mn).可以从前往后,或者从后往前(利用栈)找到最后一个公共的节点。 阅读全文
摘要:
题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 思路:动态规划。直接用递归太费时。 阅读全文
摘要:
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 思路:动态规划。 阅读全文
摘要:
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路:队列:先进先出。栈:先进后出。push操作的时候直接放入一个栈,pop操作的时候则从另一个栈取,那么另一个栈怎么存数据呢?当这个栈没有数据的时候,则从push栈取出所有数据,此时最先存进栈的数据回到这个 阅读全文
摘要:
题目:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 思路:有很多方法,比如利用递归,只是要想办法去掉if终止条件判断,可以利用&&短路思想处理. 阅读全文
摘要:
题目:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 思路: 就这样,分别计算下三角和上三角,比如计算上三角的时候,利用动态规划思想,下三角同理 阅读全文
摘要:
题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路:利用位运算 阅读全文
摘要:
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 分析:当n = 1, f[n] = 1, 表示直接跳1级台阶 n = 2, f[2] = f[1]+1, 表示从第1级台阶再跳1级台阶的跳法加上直接跳2级台阶 n = 3, f[3] 阅读全文
摘要:
题目:操作给定的二叉树,将其变换为源二叉树的镜像。 如: 分析:递归的交换左右子树。也可以用栈实现。 解法一:递归 解法二:栈实现 阅读全文
摘要:
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。 分析:层次遍历(广搜)。 阅读全文
摘要:
题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。 分析:首先理解什么是平衡二叉树。平衡二叉树具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 很明显可以用递归解决。 解法一: 上述解法的不足在于在计算上层节点的时候,他会反复计算下层节点 阅读全文
摘要:
题目:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 分析:恩。。没啥好分析的,很基础的一题,有多种解法,如递归,层次遍历。 解法一:递归 树的深度=max(左子树的深度, 右子树的深度)+ 节点本身的深度(为1) 递归终止条 阅读全文
摘要:
深度学习中定义的损失函数基本上都是极度非凸的函数,仅使用梯度下降法(SGD)很容易陷入局部最优解,本系列打算讲解以下方法: 1、SGD (On the importance of initialization and momentum in deep learning) 2、momentum 3、N 阅读全文
摘要:
torch.bmm(batch1, batch2, out=None) → Tensor Performs a batch matrix-matrix product of matrices stored in batch1 and batch2. batch1 and batch2 must be 阅读全文
摘要:
torch.ger(vec1, vec2, out=None) → Tensor Outer product of vec1 and vec2. If vec1 is a vector of size nn and vec2 is a vector of size mm, then out must 阅读全文
摘要:
numpy.expand_dims(a, axis) Expand the shape of an array. Insert a new axis that will appear at the axis position in the expanded array shape. Input ar 阅读全文