关闭

剑指offer第19题(顺时针打印矩阵)

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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. 思想:首先找到打印的条件是row>2*startY,cols>2*startX;然而每次打印的startX=StartY。然后寻找...
阅读(12) 评论(0)

剑指offer第18题(二叉树的镜像)

题目: 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 ...
阅读(11) 评论(0)

剑指offer第17题(树的子结构)

题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思想:现根据在树A中查找与根节点的值一样的节点R。紧接着判断树A中以节点R为根节点的子树和树b是不是具有相同的结构。 java代码: /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode rig...
阅读(13) 评论(0)

剑指offer第16题(合并两个排序的链表)

思想:;链表1的头结点的值小于链表2的头结点的值,因此链表1的头结点是合并后的链表的头结点。在剩余的结点中,链表2的头结点的值小于链表1的头结点的值,因此链表2的头结点是剩余结点的头结点,把这个结点和之前合并好的链表的尾结点链接起来。 注意事项:在非递归版本中,注意在两个链表b比较后,有些链表可能还有剩余,因此还需要继续添加在合并后的链表中。 java代码: /* public clas...
阅读(34) 评论(0)

剑指offer第15题(反转链表)

题目:输入一个链表,反转链表并输出反转后链表的头结点。 思想:将链表反转即可,值得注意的是如果当前节点指向了前一个节点,我们就需要一个东西存储当前指针之前指向的后一个节点,否则无法在链表中遍历到后一个结点。 java代码: /* public class ListNode { int val; ListNode next = null; ListNode(int...
阅读(20) 评论(0)

剑指offer第14题(链表中倒数第k个结点)

java思路:第一个指针从链表的头指针开始遍历向前走k-1步,第二个指针保持不变;从第k步开始,第二个指针开始从链表的头指针开始遍历。由于两个指针的距离保持在k-1,因此在第二个指针走到链表尾部的时候,第一个指针在倒数第k个位置。 java代码: /* public class ListNode { int val; ListNode next = null; L...
阅读(15) 评论(0)

剑指offer第13题(整数数组顺序使奇数位于偶数前面)

思路:由于存储的时候不知道具体奇数和偶数的数目,因而我们采用的是列表。最后将两个列表的内容组合在一起,就可以得到排序后的数组。 java代码: import java.util.ArrayList; import java.util.List; public class Solution {     public void reOrderArray(int [] array) {   ...
阅读(18) 评论(0)

剑指offer第12题(数值的整数次方)

题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方 思路:引入math库即可 java代码: ublic class Solution {     public double Power(double base, int exponent) {         return Math.pow(base,exponent); ...
阅读(36) 评论(0)

剑指offer第11题(二进制中1的个数)

题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 java思路:将整数转换为二进制数,而且返回值是字符串参数,将里面的0替代为什么都没有,再算字符串的长度即可。 java代码: public class Solution {     public int NumberOf1(int n) {         return Integer.toBinaryString...
阅读(122) 评论(0)

剑指offer第十题(矩形覆盖)

题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路:我是通过在草稿上画图可知大矩形2*1有一种方法,2*2时有两种方法,2*3有三种方法,2*4有四种五种方法,依次类推可知为斐波拉契数列。 java代码: public class Solution {     public int RectCover...
阅读(29) 评论(0)

剑指offer第九题(变态跳台阶)

题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路: 假设f(n)是n个台阶跳的次数。 f(1) = 1 f(2) 会有两个跳得方式,一次1阶或者2阶,这回归到了问题f(1),f(2) = f(2-1) + f(2-2) f(3) 会有三种跳得方式,1阶、2阶、3阶,那么就是第一次跳出...
阅读(28) 评论(0)

剑指offer第八题(跳台阶)

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路: 其实就是斐波那契数列问题。 假设f(n)是n个台阶跳的次数。 f(1) = 1  f(2) 会有两个跳得方式,一次1阶或者2阶,这回归到了问题f(1),f(2) = f(2-1) + f(2-2) f(3) 会有三种跳得方式,1阶、2阶、3阶,那么就是第一次...
阅读(37) 评论(0)

剑指offer第七题(裴波那契数列)

题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n 斐波那契数列:斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........ 斐波那契...
阅读(36) 评论(0)

线性回归与逻辑回归实战

逻辑回归实战:逻辑回归实现鸢尾花数据的分类 注意知识点:在类别标签y中是具体的字符串,记得用sklearn自带的处理标签,让其最后用0,1,2表示三个类 #!/usr/bin/python # -*- coding:utf-8 -*- import numpy as np from sklearn.linear_model import LogisticRegression from skl...
阅读(47) 评论(0)

剑指offer第六题(数组)

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0 思路:只是单纯的获得数组中元素的最小值。 java代码: import java.util.ArrayList...
阅读(34) 评论(0)

剑指offer第五题(栈和队列)

题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 用一个栈作为接受输入值,另外一个栈作为输出,但要注意的是要判断输出的栈为空。 java代码: import java.util.Stack; public class Solution {     Stack stack1 = new Stack();     Stack stack2 ...
阅读(41) 评论(0)

剑指offer第四题(重构二叉树)

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路:用递归的思想。 java代码: package com.yiibai.helloworld; public class Solution {...
阅读(57) 评论(0)

剑指offer第三题

题目:输入一个链表,从尾到头打印链表每个节点的值。 java思路:注意是从尾到头输出每个节点的值,这就意味着先进后出的特点,因而我们想到栈。首先我们声明一个栈,存储链表中元素的值,然后声明一个list,读取堆栈中的元素,最后返回list即可。 代码: /** *    public class ListNode { *        int val; *        ListNode...
阅读(57) 评论(0)

剑指offer第一题和第二题(python版和java版)

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路:从最左下角的数开始遍历,若目标数比其小,就往上面走,否则就往右边走。 java代码: public class Solution {     public boolean Find(int target, int...
阅读(52) 评论(0)

线性回归模型推导过程及相关知识点

线性回归是真正用作回归,lr用作分类,线性回归的基本思想是用梯度下降法对最小二乘形式的误差函数进行优化。 线性回归的推导过程(见大佬博客): http://blog.csdn.net/fleurdalis/article/details/54931721(但是个人感觉在求偏导的中间一步有问题) 线性回归与逻辑回归的区别: A.线性回归要求变量服从正态分布,lr对变量分布没有要求。 B.线...
阅读(44) 评论(0)
24条 共2页1 2 下一页 尾页
    个人资料
    • 访问:1206次
    • 积分:250
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条