自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AgoniAngel

限制一个人发展的,往往是眼界。

  • 博客(74)
  • 资源 (3)
  • 问答 (6)
  • 收藏
  • 关注

原创 Python 写入tsv文件

with open(r'file.tsv', 'w', newline='') as f: tsv_w = csv.writer(f, delimiter='\t') tsv_w.writerow(['A1', 'A2', 'A3']) tsv_w.writerows(np.array(data_frame).tolist()) # 多行写入newline用于避免多余的空行。如果没有指定newline='',则每行数据后面都会多一行空行。参考:写入tsv文件的多..

2021-01-21 19:43:17 5437

原创 【专题】最大子数组和 / 子矩阵和

最大子矩阵给定一个正整数和负整数组成的 N × M矩阵,找出元素总和最大的子矩阵,返回它的元素总和。输入: [1,3,-4,2], [2,-1,2,-1]输出: 5【思路】 这题可转化为"最大子数组和"求解,只需要将二维转化为一维。对于矩阵的每一列,我们将其加在一起,得到一维数组 b,b[i]表示矩阵第 i 列所有元素和。更准确的解释如下图:那么怎么把每个子矩阵都遍历到呢?我们每次选择两行 i 和 j,代表子矩阵的上下边界,并求每列的和(得到数组b),然后按"最..

2020-08-22 23:04:28 346

原创 【专题】股票问题

目录文章:一个方法团灭 6 道股票问题121. 买卖股票的最佳时机(只能买一次)122. 买卖股票的最佳时机 II(可多次买卖)123. 买卖股票的最佳时机 III(最多买2次)188. 买卖股票的最佳时机 IV309. 最佳买卖股票时机含冷冻期714. 买卖股票的最佳时机含手续费文章:一个方法团灭 6 道股票问题LeetCode股票题通用方法:一个方法团灭 6 道股票问题动态规划。三维DP:第一个是天数,第二个是允许交易的最大次数,第三个是当前的持有状态...

2020-08-09 13:59:29 335

原创 【专题】排列 / 组合问题

31. 下一个排列(next_permutation)给定一个数组,将它重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子:1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,146. 全排列给定一个没有重复数字的序列,返回其所有可能的全排列。输入: [1,2,3]输出:[ [1,2,3]...

2020-07-31 21:50:21 202

原创 【专题】字符串匹配

28. 实现 strStr()给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。输入: haystack = "hello", needle = "ll"输出: 2输入: haystack = "aaaaa", needle = "bba"输出: -110. 正则表达式匹配给你一个字符串s和一个字符规律p,请你来实现一个支持 '.'...

2020-07-31 20:17:23 288

原创 【专题】链表

21. 合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:1->2->4, 1->3->4输出:1->1->2->3->4->423. 合并K个排序链表合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。输入:[1->4->5,1->3->4,2->6]输出: 1->1-...

2020-07-25 11:54:03 103

原创 【专题】回文

一、字符串问题5.最长回文子串【中等】给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。214. 最短回文串【困难】给定一个字符串s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。输入: "aacecaaa"输出: "aaacecaaa"输入: "cbbd"输出: "bb"516. 最...

2020-07-20 20:07:43 197

原创 图解C++菱形继承、虚继承对象的内存分布

目录菱形继承的内存分布虚继承的内存分布虚继承(有虚函数)的内存分布菱形继承的构造/析构顺序虚继承的构造/析构顺序

2020-05-02 23:35:02 2145

原创 Top k 问题的两种经典解法

【题目】给定一个长为n的数组,找出其中最小的k个数(或 第k小的数)。【思路】以找"最小的k个数"为例。方法一:堆class Solution {public: vector<int> getLeastKNums(vector<int>& arr, int k) { int n = arr.size(); ve...

2020-04-21 00:18:04 239

原创 【专题】打家劫舍/粉刷房子/栅栏涂色

打家劫舍【LeetCode 198】【题目】给定一个非负整数数组,代表每个房子的现金数。如果两间相邻的房屋同时被小偷闯入,系统会自动报警。计算小偷在不触动警报装置的情况下,能够偷窃到的最高金额。输入: [2,7,9,3,1]输出: 12解释: 偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。 偷窃到的最高金额...

2020-04-16 21:58:12 271

原创 堆排序原理及实现

原理以升序排序为例(升序采用大顶堆,降序采用小顶堆)。可以分成2步:(1)将待排序的序列构造成一个大顶堆,这时堆顶就是序列的最大值。(2)将堆顶元素和末尾元素进行交换,这时最大值就放到了末尾。然后将剩下n-1个元素重新构造成一个堆,这样堆顶就是n个元素的次大值。这样反复执行n-1轮后,序列就排好序了。第1步:将待排序的序列构造成一个堆思想:从最后一个非叶子节点开始,对于每...

2020-04-16 00:09:51 738

原创 实现堆(push/pop)

堆可以用数组模拟。假设堆顶在arr[1],那么任意节点 i 的左右子节点分别是 2i 和 2i+1,父节点是i/2.堆具有以下性质: 大顶堆:arr[i] >= arr[2i] && arr[i] >= arr[2i+1] (i = 1,2…) 小顶堆:arr[i] <= arr[2i] && arr[i] &...

2020-04-15 23:17:13 1659 1

原创 【专题】在数字中间添加运算符,使等式成立

【招商银行卡笔试 20.04.08】给定一个字符串s和一个整数k,只含有数字0-9,在字符串中随意插入 + 号或 - 号(不能在两端插入),使得算式结果为k。输出可行的方案数。1字符串长度12,11e4类似题:Leetcode494#include <iostream>using namespace std;int k, cnt;string s;vo...

2020-04-11 18:46:04 2805

原创 图解C++虚函数表和类对象的内存分布

1.单继承的内存分布2.多继承的内存分布3.菱形继承的内存分布

2020-04-11 13:08:40 860 1

原创 连续子序列的最大值的期望

【阿里笔试题 20.03.30】小强得到了长度为n的序列,但他只对非常大的数字感兴趣,因此随机选择这个序列的一个连续子序列,并求这个序列的最大值,请告诉他这个最大值的期望是多少。序列是无序的,且可能含有重复值。输入第一行n表示序列长度接下来一行n个数描述这个序列,,数字保证是正整数且不超过100000第二行n个数字表示序列的值输出保留6位小数样例输入:...

2020-03-31 14:49:44 1396

原创 石子游戏

【百度笔试题 200329】有n堆石子,每堆有a[i]个石子。男、女两个人轮流取,每次从任意一个堆中取一个石子。当一个人取之前所有堆都是空的,或者取之后存在两个堆的石子数量相同,则这个人输。男的先取,两人取石子都使用对自己最有利的策略,输出最后的赢家。输入:第一行T, 表示样例数对于每组样例, 第一数为n, 后面n个数为每堆的石子数量21 [0]2 [2,2]输出...

2020-03-29 23:19:47 405

原创 LeetCode 1246 删除回文子数组

微软笔试题 20.3.25【题目】给你一个整数数组 arr,每一次操作你都可以选择并删除它的一个 回文子数组 arr[i], arr[i+1], ..., arr[j],其中 i <= j。注意,每当你删除掉一个子数组,右侧元素都会自行向前移动填补空位。请你计算并返回从数组中删除所有数字所需的最少操作次数。

2020-03-26 14:49:47 881

原创 两人轮流抽奖的中奖概率

【360 20.3.25】抽奖箱里有n张中奖票,m张不中奖票。A和B轮流从箱里抽一张,A先抽。只要有人抽到中奖票就结束,中奖的人胜利。抽过的票会被丢弃。此外,B每次抽后,会再抽一张并丢弃(这张票即使中奖也不算B胜利)。求A的胜率,保留4位小数。若两人最后都没抽到过中奖票,则算作B胜利。输入:两个数字n和m,代表中奖票数和不中奖票数(0<=n,m<=1000)...

2020-03-25 19:04:40 1582

原创 【专题】编辑距离/最长公共子序列/最长公共子数组

两个字符串a和b,长度相等,并且只有A和T两种字符。通过2种操作把a变成b,求最少操作次数。第1种操作,替换一个字符第2种操作,交换两个字符的位置示例:输入:TAAATTAATTAA输出:3解释:把第1个字符T替换为A,第3、5个字符交换,第4、6个字符交换。来自360笔试(2020.3.24)【思路】这题类似于编辑距离,但操作不同,总体要简单些,不需要...

2020-03-24 23:41:10 340

原创 LeetCode 298 二叉树最长连续序列

【题目】给定一个二叉树,求最长连续序列的长度。连续序列是一条父节点到子节点路径,路径上的数连续递增(子节点的数比父节点大1)。Given a binary tree, find the length of the longest consecutive sequence path.The path refers to any sequence of nodes from some ...

2020-03-22 11:42:44 572

原创 【专题】寻找缺失/重复/只出现一次的数

LeetCode41. 缺失的第一个正数给定一个未排序的整数数组,找出其中没有出现的最小的正整数。要求时间O(n),空间O(1)。输入: [1,2,0] 输出: 3输入: [3,4,-1,1] 输出: 2输入: [7,8,9,11,12] 输出: 1LeetCode268. 0-n中缺失的一个数字给定一个包含 0,...

2020-03-15 15:30:23 603

原创 【专题】最长子串问题(无重复/最多k个不同字符) -滑动窗口

目录1.LeetCode 3:无重复字符的最长子串(Medium)2.LeetCode 159:最多有2个不同字符的最长子串 (Medium)3.LeetCode 340:最多有k个不同字符的最长子串 (Medium)1.LeetCode 3:无重复字符的最长子串(Medium)给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。输入: "abcabcbb...

2020-03-08 23:05:20 433

原创 牛客2020模拟笔试(二月场)

目录1. 排序子序列 (Easy)2. 组队竞赛 (Easy)3.牛牛的数列 (Medium)1. 排序子序列 (Easy)牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列。如样例所示,牛牛可以把数组A划分为...

2020-03-07 19:59:17 335

原创 LeetCode 246/247/248 中心对称数

目录LeetCode 246 (Easy):判断一个数是否为中心对称数LeetCode 247 (Medium):给出长度为 n 的所有中心对称数LeetCode 248 (Hard):求给定区间内有多少中心对称数 LeetCode 246 (Easy):判断一个数是否为中心对称数 A strobogrammatic number is a number that looks...

2020-03-05 18:08:41 1321

原创 C语言 打印一个文件夹中所有文件名

#include <stdio.h>#include <io.h>int main(){ const char *path = "D:\\*.csv"; // 输出这个目录下所有csv文件名 //const char *path = "D:\\*"; // 输出这个目录下所有文件和子文件夹的名字 long handle; //用于查找...

2020-03-03 15:20:12 1958

原创 C语言读取Excel文件

C语言要读取xls/xlsx格式文件比较复杂,可以先把xls/xlsx格式另存为csv格式。比如文件"i.csv"内容如下:csv格式采用逗号分隔符,用记事本打开可以看到:用 fscanf 读取字符串时,注意指定字符串的格式,要用逗号和\n作为分隔符。(scanf/fscanf等函数指定字符串格式的方法:点击)代码:#include <stdio.h>...

2020-03-03 14:29:59 16792 11

原创 LeetCode 946 判断一个序列是否可能为出栈序列、打印全部可能的出栈序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)https://www.nowcoder.com/practice/d77d114...

2020-03-01 12:46:27 647

原创 单例模式(C++实现)

单例模式一个类只能有一个实例要点1. 构造函数(以及拷贝构造函数、赋值运算符)设为private2. 类内部定义一个静态实例其它注意事项多线程情况下需要防止同时创建实例实现#include<iostream>using namespace std;class A{private: A(int v):value(v){}; A()...

2020-01-03 21:06:31 194

原创 买不到的数目

题目小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字(保证存在)。输入格...

2019-11-03 21:05:53 109

原创 LeetCode 305:岛屿数量2

题目A 2d grid map of m rows and n columns is initially filled with water. We may perform an addLand operation which turns the water at position (row, col) into a land. Given a list of positions to ope...

2019-10-21 23:34:23 744

原创 LeetCode 156:上下翻转二叉树

题目Given a binary tree where all the right nodes are either leaf nodes with a sibling (a left node that shares the same parent node) or empty, flip it upside down and turn it into a tree where the or...

2019-10-11 21:53:59 985 1

原创 Jupyter notebook中使用R语言

在Rstudio命令行输入:install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest'))install.packages('IRkernel')在Anaconda prompt中运行R.exe,输入命令行:IRkernel::installs...

2019-04-12 21:04:37 912 1

原创 Python数据结构:元组、列表、字典、集合

1.元组元组不可修改,但元组元素(如列表)的内部可以修改元组的+和*+号可以连接元组来生成新元组,*号可以复制元组元组拆分*rest:用于只取出tuple中开头几个元素,剩下的元素直接赋给*rest。如果rest部分是用不到的数据,为了方便直接用_代替元组方法count(x):统计x在元组中的出现次数index(x):查找x在元组中的下标。如果x多次出现...

2019-01-24 11:29:24 291

原创 Python基础

1. 变量的赋值、传参是引用(指向同一个对象),一个改变另一个也跟着改变2. 字符串、元组不可修改,但字符串可用replace修改(本质上是创建了一个新字符串对象)3.  除法/与///保留小数结果,//只保留整数部分                                               4.字符串中的反斜杠\当字符串中的 \ 都不表示转义字符时,...

2019-01-22 14:31:28 168

原创 Python 词性标注

1. DefaultTagger标注器DefaultTagger可以将所有token标记为同一个标签(tag)。sent = "Thanks for your reading!"tokens = nltk.word_tokenize(sent)default_tagger = nltk.DefaultTagger('NN')tagged_words = default_tagger.tag...

2018-04-29 23:57:16 2740

原创 Python 函数参数传递方式

 def change(val): val.append(100) val = ['T', 'Z', 'Y']nums = [0, 1]change(nums)print(nums)运行结果:[0, 1, 100] def swap(x,y): t=x x=y y=ta=1b=2swap(a,b)print(a,b)...

2017-07-31 12:00:23 535

原创 Polya定理

Burnside引理、Polya定理及其应用

2016-08-20 15:11:23 1855

原创 入门字典树 HDOJ1251 统计难题 HDOJ1075 字典翻译

HDOJ 1251 统计难题最简单的字典树,耗内存,对比一下C++和G++下相同的代码运行结果:G++虽然快点,但是直接MLE...所以交的时候还要注意选择编译器啊#include#include#include#include#include#include#define mst(a,b) memset(a,b,sizeof(a))using namespace

2016-08-01 23:14:32 635

原创 运算符重载

#includeusing namespace std;class Complex{public: Complex(double r=0.0,double i=0.0):real(r),imag(i){} Complex operator+(const Complex &c)const{ return Complex(real+c.real,imag+c.i

2016-07-20 20:12:06 427

原创 HDOJ 2069 Coin Change 带限制条件的母函数

HDOJ 2069题意有5种分值的硬币无数,分别是50、25、10、5、1. 每给一个分值n(nSample Input1126Sample Output413打表。#include #include #include #include using namespace std;const int N = 251;int c

2016-07-20 15:38:39 536

合集之《信息学中问题求解初探》

对ACM、topcoder等编程竞赛中涉及到的概率问题求解方法进行探索归纳整理。

2015-07-24

排序算法与回溯算法

acm/topcoder等信息学竞赛之排序算法与回溯算法精讲

2015-07-23

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

TA关注的人

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