自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 Leetcode 37解数独

LeetCode 37 解数独 实习之后好久没做了,做了几道题也没有些记录。之前做的就不补了哈哈 一、题目描述 ​ 输入已经保证了是肯定具有唯一解的数独题 二、解法思路 数据预处理,直接操作board太麻烦了,判断也过于麻烦。所以从中抽取三个需要集中判断的字段。每一行缺失的数字,每一列缺失的数字,每一块(3*3)块缺失的数字。 一开始以为会一直存在有一个位置只会有一个可选的数字,结果发现不是 使用类似于八皇后的回溯法来解决 三、代码: class Solution: def union(self

2021-11-22 14:18:52 287

原创 Leetcode 04 寻找两个正序数组中的中位数

LeetCode 4 寻找两个正序数组中的中位数 一、题目概述 ​ 给定两个大小为m和n的正序数组,返回两个正序数组的中位数。 二、解法思路: ​ 最朴实的方法,从第一个开始比较,置两个指针,然后一个一个比较,谁小谁加1,直到加够。复杂度是O(m+n)O(m+n)O(m+n) ​ 另外个方法:考虑一个函数,是找到第K个数,那么给定两个数组,那么就是从两个数组中找到一个这样的分割,使得在分割线左边的数量等于K。同时只要确定一个数组中分割线的位置,就可以确定另一组分割线的位置(总数K相同)。同时需要满足,左边的

2021-10-05 15:31:01 43

原创 剑指17 树的子结构

剑指17 树的子结构 一、题目概述 ​ 给定两颗二叉树A,B。判断B是不是A的子结构。(空的树不是任何一个树的子结构) ​ 二、思路概述 ​ 一个很简单的办法: ​ 遍历A树,找到根节点与B节点相同的节点。 ​ 然后用该子树来和B树来判断是否相同。 三、代码 # -*- coding:utf-8 -*- class TreeNode: def __init__(self, x): self.val = x self.left = None

2021-10-03 16:05:58 41

原创 剑指12 数值的整数次方

剑指12 数值的整数次方 一、题目描述 给定一个浮点数,求解他的整数次幂。 这道题可以使用递归的方法来降低计算复杂度,也可以使用位运算的方法来求解。 位运算不是很熟悉,所以主要探讨一下位运算来解决的方式(位运算也是迭代降低复杂度)。 二、位运算来解决 对于给定一个浮点数xxx与一个整数yyy。求解xyx^yxy。y具有二进制表示y^\hat yy^​ 那么对于y^n,y^n−1,....,y^0\hat y_n,\hat y_{n-1},....,\hat y_0y^​n​,y^​n−1​,....,y

2021-09-27 19:46:34 41

原创 剑指11 统计二进制数中1的个数

剑指 11 二进制数中1的个数 一、题目概述 输入一个整数,输出该数32位进二进制表示中1的个数。其中负数用补码表示 这是一个要利用到进制移位的问题 以前做进制的题目的时候总有点混,所以现在来补充一下进制上的知识 考虑几个补码中的基础知识: 正数右移:保持为正数,相当于/2。 负数右移:保持为负数,移位前是负数,移位后保持是负数,因此移位后最高位设为1。如果一直右移,最终会变成-1,即(-1)>>1是-1。 正数左移:不保持为正数,相当于*2。(注意:1左移31时为负数最大值) 负数左移:不保

2021-09-27 15:42:13 48

原创 剑指 10 矩阵覆盖

剑指 10 矩阵覆盖 题目分析 ​ 典型的递归和动态规划的问题。 ​ 对于一个2∗n(n>3)2*n (n>3)2∗n(n>3)的大矩阵有knk_nkn​种方法。有推导式: ​ kn=kn−1+kn−2k_n = k_{n-1}+k_{n-2}kn​=kn−1​+kn−2​ ​ 其中k1=1,k2=2k_1=1,k_2=2k1​=1,k2​=2,那么其实能够推导出knk_nkn​的计算式子,可以直接一步计算,但是算出来的式子比较麻烦 代码 我的代码 class Solution:

2021-09-26 15:16:08 40

原创 剑指 05 两个栈实现队列

剑指 05 两个栈实现队列 题目解析: 用两个栈来实现一个队列,完成n次队尾插入,队头删除。元素为int类型。插入O(n),时间复杂度O(1)。 结题思路: 插入复杂度为O(n)O(n)O(n),即将一个栈作为专门的pop栈,满足队列先进先出O(1)O(1)O(1)。将另一栈作为pop栈的中间通道,反置,插入新值,再反置。 代码: 我的代码 # -*- coding:utf-8 -*- # 栈是先进后出 class Solution: def __init__(self): self

2021-09-26 14:29:29 33

原创 每日刷题 剑指 04 重建二叉树

每日刷题 剑指 04 重建二叉树题目描述简单思路代码 题目描述 对于由一个二叉树得到的中序和前序遍历,根据这两个遍历得到的结果来得到整个树的结构。 简单思路 给定一个前序遍历,能够确定数的根节点,给定根节点和中序遍历能够确定根节点的左子树和右子树的中序遍历。同样也能够得到左子树和右子树的前序遍历。那么根据这样的想法进行递归。 举个例子: 代码 我的代码 class Solution: def reConstructBinaryTree(self , pre, vin) : # wr

2021-09-25 19:35:10 42

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除