- 博客(298)
- 收藏
- 关注
原创 剑指 Offer 07. 重建二叉树(递归)
剑指 Offer 07. 重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:3 / 9 20/ 15 7题解:用递归找中序的位置。/** * Definition for a binary tree node. * struct TreeNode { *
2020-12-17 14:30:01 187
原创 剑指 Offer 46. 把数字翻译成字符串(dp)
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”提示:0 <= num < 231解析:是一个递推公式,但是对于边界值要判断好。class Sol
2020-12-14 12:16:50 242
原创 剑指 Offer 64. 求1+2+…+n
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000解析:这题主要两个思路吧,第一个直接用递归class Solution {public: int sumNums(int n) { n>1&&(n+=sumNums(n-1));
2020-12-14 10:19:21 299
原创 剑指 Offer 04. 二维数组中的查找(二分)
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给定 ta
2020-12-13 22:45:10 275
原创 376. 摆动序列(dp)
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(也可以不删除)元素来
2020-12-13 09:55:20 109
原创 1574. 删除最短的子数组使剩余数组有序(二分)
给你一个整数数组 arr ,请你删除一个子数组(可以为空),使得 arr 中剩下的元素是 非递减 的。一个子数组指的是原数组中连续的一个子序列。请你返回满足题目要求的最短子数组的长度。思路在代码中from typing import Listclass Solution: #分三种情况,舍去的子区间在开头,中间,结尾 def findLengthOfShortestSubarray(self, arr: List[int]) -> int: len_ar
2020-10-14 13:41:36 258
原创 leetcode 120. 三角形最小路径和(滚动数组)
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。from typing import List #dp[i][j]表示从上到第i行,第j列的最小路径和 # dp[i][j]=min(dp[i-1][j-1],dp[i-1][j])+arr[i][j] # 每一个都只和上一层有关 # 使用滚动数组倒序更新
2020-10-13 09:56:14 133
原创 leetcode 440. 字典序的第K小数字(字节高频面试) dfs
首先,抒发一下感言:为什么要写这道题,是不是头铁??最后还是要面向样例编程。。。网上有很多比较好的思路,这是比较复杂但也是可以自己想出来的思路给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。注意:1 ≤ k ≤ n ≤ 10910^9109。示例 :输入:n: 13 k: 2输出:10解释:字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。思路:# 建立一个十叉树,然后去寻找第
2020-10-11 22:35:25 154
原创 1438. 绝对差不超过限制的最长连续子数组 (双边单调队列+滑动窗口)
题目链接python 中deque 双边队列,实现使用popleft,pop,append,appendlef等函数实现对两边的操作本题维护两个双边队列,一个递增,存放某种意义上的最小值,一个递减,存放某种意义上的最大值。枚举每一个值,将该值放到两个队列最右边,并维护单调性之后就可以从队列左侧开始,因为左侧的点是之前出现的点,对于递减队列,存放的是当前子序列的最大值,对于递增队列,存放的是当前子序列的最小值。之后滑动l,如果num[l]和某个值相等,那么就找到了不满足条件的点,去掉即可。本文中这种思
2020-10-08 18:05:44 234
原创 leetcode 1552. 两球之间的磁力(二分)
题目链接在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里,使得任意两球间 最小磁力 最大。已知两个球如果分别位于 x 和 y ,那么它们之间的磁力为 |x - y| 。给你一个整数数组 position 和一个整数 m ,请你返回最大化的最小磁力。解析:二分答案即可class Solution: def ma
2020-10-07 15:31:49 219
原创 leetcode 1610. 可见点的最大数目(atan2找角度)
题目地址这是一道计算两个点角度的题首先介绍一下atan2函数知道了这些知识之后这道题就不难了,我们计算每个点到location的角度,排序之后定义两个变量i,j;找到符合i+angle<j的最后一个点即可,由于i在增大,所以j也无需重置。最后需要注意以下double类型的精度问题。还有一种是和location重合的点先找出来,因为重合的点在atan2函数中是没有定义的class Solution: def visiblePoints(self, points: List[Lis
2020-10-06 11:21:27 342
原创 leetcode 1611. 使整数变为 0 的最少操作次数(记忆化搜索)
给你一个整数 n,你需要重复执行多次下述操作将其转换为 0 :翻转 n 的二进制表示中最右侧位(第 0 位)。如果第 (i-1) 位为 1 且从第 (i-2) 位到第 0 位都为 0,则翻转 n 的二进制表示中的第 i 位。返回将 n 转换为 0 的最小操作次数。示例 1:输入:n = 0输出:0示例 2:输入:n = 3输出:2解释:3 的二进制表示为 “11”“11” -> “01” ,执行的是第 2 种操作,因为第 0 位为 1 。“01” -> “00” ,执行的
2020-10-05 23:08:55 965
原创 leetcode 1535. 找出数组游戏的赢家(思维)
给你一个由 不同 整数组成的整数数组 arr 和一个整数 k 。每回合游戏都在数组的前两个元素(即 arr[0] 和 arr[1] )之间进行。比较 arr[0] 与 arr[1] 的大小,较大的整数将会取得这一回合的胜利并保留在位置 0 ,较小的整数移至数组的末尾。当一个整数赢得 k 个连续回合时,游戏结束,该整数就是比赛的 赢家 。返回赢得比赛的整数。题目数据 保证 游戏存在赢家。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-t
2020-10-04 10:29:20 215
原创 leetcode 1476. 子矩形查询(对更新的查找) python
https://leetcode-cn.com/problems/subrectangle-queries/请你实现一个类 SubrectangleQueries ,它的构造函数的参数是一个 rows x cols 的矩形(这里用整数矩阵表示),并支持以下两种操作:updateSubrectangle(int row1, int col1, int row2, int col2, int newValue)用 newValue 更新以 (row1,col1) 为左上角且以 (row2,col2)
2020-10-04 09:53:02 224 1
原创 西安游记
从西安回来之后,老是有记录一下这趟旅行的冲动,下次再去也好有个参考和xfy在西安玩了三天两夜,第一天上午去了陕西历史博物馆,见到了很多真东西,真的有历史长河,文明源远流长的感觉,最大感触还是古代贵族的奢华,工艺精湛,设计巧妙,,,始终觉得博物馆最可贵的不是让我们见到这些文物,而是让我们知道曾经有这么存在过的一些人。中午去了赛格国际购物中心,坐了亚洲最长扶梯,真的很长,不知道几楼的长安大排档...
2020-01-03 07:38:37 234
原创 如何从借助跳板机登陆的服务器上下载文件(xftp失效)
[root@localhost lib]# tar zcf mysql-files.tar.gz mysql-files/ [root@localhost lib]# lsalternatives dhclient iscsi misc mysql-files.tar.gz polkit-1 rpm udevauthco...
2020-01-02 14:54:03 3209 1
原创 Swift Core Data 图片存储与读取
https://blog.csdn.net/zhangao0086/article/details/44499405
2019-12-31 12:37:29 210
原创 Codeforces Round #549 (Div. 2) D. The Beatles(数学)
D. The Beatlestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputRecently a Golden Circle of Beetlovers was found in Byteland. It is a circle rou...
2019-12-31 12:37:20 159
原创 pl0语言的语法分析
#include <bits/stdc++.h>using namespace std;const int N=1e5+10;string s1[11]={"begin","end","if","then","while","do","const","var","call","procedure","odd"};string s2[14]={"+","-","*","/","...
2019-12-31 12:36:59 1645
原创 Codeforces Round #553 (Div. 2) C - Problem for Nazar(数学)
C. Problem for Nazartime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputNazar, a student of the scientific lyceum of the Kingdom of Kremland, is k...
2019-12-31 12:36:50 190
原创 Educational Codeforces Round 62 (Rated for Div. 2) C. Playlist(枚举+优先队列)
C. Playlisttime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou have a playlist consisting of nsongs. The i-th song is characterized by t...
2019-12-31 12:36:33 121
原创 Codeforces Round #550 (Div. 3) E. Median String(大数模拟)
E. Median Stringtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given two strings s and t, both consisting of exactly k lowercase Lat...
2019-12-31 12:36:27 129
原创 Codeforces Round #550 (Div. 3) F. Graph Without Long Directed Paths(dfs)
F. Graph Without Long Directed Pathstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a connected undirected graph consisting of ...
2019-12-31 12:36:09 114
原创 Codeforces Round #551 (Div. 2) D. Serval and Rooted Tree(dp)
D. Serval and Rooted Treetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputNow Serval is a junior high school student in Japari Middle School, ...
2019-12-31 12:35:44 138
原创 图像的离散余弦变换
对lenagray.jpg图像进行离散余弦变换,观察其余弦变换系数及余弦反变换后恢复图像。用到的matlab函数为dct2,abs,idct2。I=imread('lenagray.jpg');figure(1)%显示原图像subplot(1,3,1);imshow(I);title('原图像')%计算二维dct变换J=dct2(I)subplot(1,3,2);imshow(log...
2019-03-29 15:15:20 1303
原创 使用matlab创建旋转图像并画出傅立叶频谱
利用matlab生成图像,并对其进行旋转30度,60度和90度,观察原图的 与旋转后的傅立叶频谱的对应关系。用到的matlab函数为fft2,abs,fftshift,imrotate。代码close all;clear all;clc;x=zeros(200,200);x(70:130,97:103)=1;%创建图像x=im2double(x)x1=abs(fftshift(ff...
2019-03-29 15:13:01 2578
原创 牛客 D 月月给华华出题(欧拉函数)
链接:https://ac.nowcoder.com/acm/contest/392/D题目描述因为月月是个信息学高手,所以她也给华华出了一题,让他求:∑Ni=1igcd(i,N)∑i=1Nigcd(i,N)但是因为这个式子实在太简单了,所以月月希望华华对N=1,2,…,n各回答一次。华华一脸懵逼,所以还是决定把这个问题丢给你。输入描述:一个正整数n。输出描述:输出n行,第i行表示...
2019-03-22 17:21:34 446
原创 牛客 流星雨(dp)
链接:https://ac.nowcoder.com/acm/contest/547/D来源:牛客网英仙座流星雨(学名Perseids)是以英仙座γ星附近为辐射点出现的流星雨,也称英仙座γ流星雨。每年在7月20日至8月20日前后出现,于8月13日达到高潮。与象限仪座流星雨、双子座流星雨并称为北半球三大流星雨。暑假到了,又是一个去看流星雨的好季节。看流星雨最重要的是什么?当然是许愿。当一颗...
2019-03-20 11:23:46 356
原创 牛客 H 华华和月月种树(dfs序+线段树)
链接:https://ac.nowcoder.com/acm/contest/392/H来源:牛客网时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述华华看书了解到,一起玩养成类的游戏有助于两人培养感情。所以他决定和月月一起种一棵树。因为华华现在也是信息学高手了,所以他们种的树是信息学意...
2019-03-19 21:16:52 395
原创 旅行商问题(dfs)
旅行商来到了一个新的国家,这个国家有N个城市,他们直接由N-1条道路相连接,每条道路的长度不尽相同旅行商现在在1号城市,若他要每一个城市都游览一遍,他需要行走的最短路程是多少?解析如果用dfs解决的话,需要逆向考虑这个问题,可以想到,肯定有路要走两次,有一条路只走一次即可,那么我们就希望这条只走一次的路可以尽可能地长,所以dfs找到这条最长的路就好了,然后其他的路走两次,这条路只需要走一次,...
2019-03-18 19:52:24 958
原创 牛客 华华开始学信息学(线段树+分块)
题目链接解析当b<=sqrt(n)时,如果要更新的话,代价有点大,所以用一个数组保存当b<=sqrt(n)时的更新。当b>sqrt(n)时,暴力更新,因为复杂度不会超过sqrt(n)然后求和的时候把b<=sqrt(n)的值更新一下就行import java.io.BufferedReader;import java.io.*;import java.io.In...
2019-03-17 14:57:18 200
原创 蓝桥杯历届试题 国王的烦恼(并查集逆序加边+结构体)
历届试题 国王的烦恼时间限制:1.0s 内存限制:256.0MB问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会...
2019-03-17 12:41:46 310
原创 蓝桥杯历届试题 数字游戏(java大数)
历届试题 数字游戏时间限制:1.0s 内存限制:256.0MB问题描述 栋栋正在和同学们玩一个数字游戏。游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。接下来,坐在栋栋左手边的同学要说下一个数字2。再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4。下一个同学要往下数三个数,说7。依次类推。为了使数字不至于太大,栋栋和同学们约定,当在心中...
2019-03-17 12:41:40 808
原创 历届试题 分考场(dfs)
时间限制:1.0s 内存限制:256.0MB问题描述 n个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。输入格式 第一行,一个整数n(1&lt;n&lt;100),表示参加考试的人数。 第二行,一个整数m,表示接下来有m行数据 以下m行每行的格式为:两个整数a,b,用空格分开 (1&lt;=a,b&lt;...
2019-03-17 12:41:36 244
原创 2017蓝桥杯 对局匹配(贪心)
历届试题 对局匹配时间限制:1.0s 内存限制:256.0MB问题描述 小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K,系统都不会将他们匹配。现在小明知道这个网站总共有N名用户,以及他们的积分分别是A1, A2, … AN。小明...
2019-03-17 12:41:31 640
原创 蓝桥杯历届试题 发现环(ArrayList+拓扑)
历届试题 发现环时间限制:1.0s 内存限制:256.0MB问题描述 小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出...
2019-03-17 12:41:23 116
原创 历届试题 小计算器(java大数进制转换)
历届试题 小计算器时间限制:1.0s 内存限制:256.0MB问题描述 模拟程序型计算器,依次输入指令,可能包含的指令有1. 数字:‘NUM X’,X为一个只包含大写字母和数字的字符串,表示一个当前进制的数 2. 运算指令:‘ADD’,‘SUB’,‘MUL’,‘DIV’,‘MOD’,分别表示加减乘,除法取商,除法取余 3. 进制转换指令:‘CHANGE K’,将当前进制转换为...
2019-03-17 12:41:17 177
原创 蓝桥杯历届试题 区间移位(java结构体+二分)
历届试题 区间移位时间限制:1.5s 内存限制:256.0MB问题描述 数轴上有n个闭区间D1,…,Dn。其中区间Di用一对整数[ai, bi]来描述,满足ai &amp;amp;lt; bi。已知这些区间的长度之和至少有10000。所以,通过适当的移动这些区间,你总可以使得他们的“并”覆盖[0, 10000]——也就是说[0, 10000]这个区间内的每一个点都落于至少一个区间内。 你希望找一个...
2019-03-17 12:41:11 575
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人