![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
BlackZero13
这个作者很懒,什么都没留下…
展开
-
【leetcode 66题 之 6 从尾到头打印链表】
这道题是一道基本的链表操作题目。使用python构建的链表是利用前插法构建的,即由最开始的一个节点A(next指向None),插入一个新的节点B,head就指向这个新的节点,然后这个新的节点B的next指向A。以此类推。题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。首先看题目提示部分# -*- coding:utf-8 -*-# class Lis...原创 2018-11-30 10:57:58 · 511 阅读 · 0 评论 -
【leetcode 常见面试题 之 反转链表】(python 连续赋值问题)
leetcode206题-反转链表有如下解法:# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def...原创 2019-03-03 22:07:27 · 238 阅读 · 0 评论 -
【leetcode 66题 之 18 数组中重复的数字】
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5题目解析:本题的主要目的是将链表中重复的节点去掉,留下只出现过一次的节点。形象的说,就是从一串数字中把“单身狗”找出来。在本题,答主使用两个指针,为了方便理...原创 2019-02-25 22:18:46 · 183 阅读 · 0 评论 -
【剑指offer 66题 之 14 剪绳子】
题目描述:给定一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]* k[1] * … *k[m]可能的最大乘积是多少?例如:例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。题目解析:该题目是典型的动态规划题目,即求最优解。整体问题的最优...原创 2019-02-18 16:23:37 · 926 阅读 · 1 评论 -
【leetcode 66题 之 15 数值的整数次方】
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。题目解析:本题目看似是一道逻辑比较简单的求整数的n次方的题目,也就是pow()操作。笔者在自己的IDE上测试的时候觉得牛客网的测试通过代码并不是很好,下面也会给出笔者自己的答案。首先,分析一下解题思路:给定一个double类型的base,求其exponent...原创 2019-01-21 20:56:52 · 199 阅读 · 1 评论 -
【leetcode 66题 之 13 机器人的运动范围】
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?题目解析:典型的回溯问题,可借鉴前一题...原创 2019-01-14 20:25:00 · 1357 阅读 · 2 评论 -
【leetcode 66题 之 10 斐波那契数列】
简单介绍一下, 斐波那契数列如下:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........规律(F代表斐波那契数列函数):当 n <= 0 时 F = 0当 n == 1 时 F = 1当 n > 1时 ...原创 2019-01-08 17:24:56 · 193 阅读 · 0 评论 -
【leetcode 66题 之 9 用两个栈实现队列】
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解析:栈:先进后出队列:先进先出题目是用两个栈实现一个队列,可以根据栈操作两次先进后出,就可以使得Pop的顺序变成队列的Pop操作。假设一组数:3、5、11、19、8、7、10辅助工具:stack1、stack2队列的push操作可直接利用list的append操作,这个别无...原创 2019-01-03 09:14:45 · 212 阅读 · 0 评论 -
【leetcode 66题 之 8 二叉树的下一个节点】
近期诸事繁冗,未延续每日刷题的习惯,再打开博客已是半月之久了。学习还是需要持之以恒,罗胖说,成就=核心算法*每天重复的平方。当然,学习还是要从兴趣出发,在上下求索中不算优化,设置好学习率,切莫下山太快,也切莫下山太慢,愿诸君都能经过反复迭代,达到全局最优点。本题为剑指offer第8题:题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅...原创 2019-01-02 21:39:02 · 2037 阅读 · 0 评论 -
【leetcode 66题 之 12 矩阵中的路径】
题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字...原创 2019-01-10 23:52:26 · 728 阅读 · 2 评论 -
【leetcode 66题 之 7 重建二叉树】
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 该题目是根据前序遍历和中序遍历重建二叉树,这里可以利用递归的方法实现。 前序遍历序列{1,2,4,7,3...原创 2018-12-06 16:56:11 · 299 阅读 · 0 评论 -
python 实现二叉树
以上为按层次生成的二叉树。关于二叉树简单的操作包括二叉树节点的定义、二叉树的生成、二叉树的前序遍历、中序遍历、后序遍历。1.首先关于节点的定义:""" @ python 二叉树及其遍历 @ author: blackzero"""''' 1. 首先定义树节点的类型'''class Node(object): # 定义初始化函数 # val 为节...原创 2018-12-06 15:40:05 · 485 阅读 · 0 评论 -
python 实现链表
最近在用python刷leetcode,遇到了链表的问题,特地研究了一下python是如何表示链表以及对链表的简单操作。代码如下:''' 用python实现简单的链表操作 包括链表的增、删、查'''class Node(object): # 初始化节点数据,next ==> null def __init__(self,data): ...原创 2018-11-29 17:51:22 · 158 阅读 · 0 评论 -
【leetcode】1~n中1的个数
描述:给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。输入: 13输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 12, 13 。思路:假设找1235这个数先找个位上有几个1,按照规律,每10个数里个位就出现1个1,所以1235在个位上会出现1235/10 = 123个1;因为这里只计算了前1230个数,在1231~1235中的数的个...原创 2019-09-20 17:44:24 · 314 阅读 · 0 评论