自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode 987. 二叉树的垂序遍历 (先坐标标号,然后排序遍历输出即可)

这个题目,测试用例的图已经给出了提示,只需要先DFS为每个节点标注坐标,并且存下来,然后在按col排序,输出即可。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {}...

2021-07-31 15:24:30 184

原创 Leetcode 1743. 从相邻元素对还原数组(图,DFS)

直接使用建图DFS即可解决。当然在实现图的时候又一些代码细节,这里直接看代码class Solution {public: vector<int> restoreArray(vector<vector<int>>& adjacentPairs) { unordered_map<int, vector<int>> graph; unordered_set<int> isVisi...

2021-07-25 01:01:02 131

原创 Leetcode 最小未被占据椅子的编号 (轮询模拟)

模拟维护离开椅子时间,采用轮训的方法或者用小根堆优化即可。class Solution {public: int smallestChair(vector<vector<int>>& times, int targetFriend) { int arrival = times[targetFriend][0], leavingi = times[targetFriend][1]; sort(times.begin(), ...

2021-07-25 00:17:48 114

原创 1893. 检查是否区域内所有整数都被覆盖 (差分数组技巧)

利用差分数组技巧可以在O(N)时间标记整个区域上的和。class Solution {public: bool isCovered(vector<vector<int>>& ranges, int left, int right) { // 如何表示 vector<int> diff(52); for (auto range : ranges) { diff[range[...

2021-07-24 01:19:53 72

原创 Leetcode 1736. 替换隐藏数字得到的最晚时间 (贪心模拟)

直接贪心模拟即可class Solution {public: string maximumTime(string time) { string res; for (int i = 0; i < time.size(); i++) { if(time[i] == '?') { if (i == 0) { if (time[1] == '?'|| time...

2021-07-24 00:40:37 90

原创 Leetcode 915. 分割数组 (从暴力开始优化)

将数组划分成两部分,所以划分方案一定是(0, i], (i,n)因此我们枚举所有的划分方案,确定满足要求的最小i即可。问题是如何在枚举i的情况下满足要求,即左边所有值小于等于右边。我们只需要判断左边的最大值小于等于右边的最小值。如何在O(1)的时间判断,预处理。因此解决。...

2021-07-23 00:17:35 160

原创 Leetcode 1877 数组中最大数对和的最小值 (贪心)

看了下数据范围,先考虑贪心,要求最大和的最小值,如果排序后小得和小得组合,大得和大得组合,那么得到的值肯定大。根据测试样例,想到大的和小的配对,这样得到的和最大和可能是最小的,如何证明呢?class Solution {public: int minPairSum(vector<int>& nums) { sort(nums.begin(), nums.end()); int res = 0; for ...

2021-07-20 00:50:26 120

原创 工程开发Git上手指南

初学者简单理解一下Git的理论,掌握Git的最基础的几个命令,重点关注创建分支,合并分钟,解决冲突。当然现在主流IDE有图形化的方式来解决冲突。建议Git在实践中学习。另外,可以通过这个游戏来更深入的理解Githttps://learngitbranching.js.org/?locale=zh_CN。当然这里面有一些操作,在实际开发过程可能中用不到。另外,一些比较复杂的场景,需要在实际开发过程中,积累经验解决。当然,有兴趣,可以深入阅读Git的书籍,自己实现一个Git。...

2021-07-20 00:36:20 89

原创 工程开发调试技巧(print到日志以及搜索查看日志)

在算法题调试过程中,我们通常使用print大法,即把输入直接打印到控制台上进行调试,而对于实际的项目,一般不是调用print函数,而是调用相应的日志函数,输出到日志中,可以把他就理解成一个控制台。由于日志很多,查看起来需要搜索着来看,通过关键字定位到日志进行调制。...

2021-07-19 20:56:41 201

原创 后端开发大师课程四五节总结

之前,我们创建了数据库表,并实现了数据的迁移脚本,下面我们要用Golang code操作数据库进行CRUD。这里可以使用GORM, 直接使用GORM提供的函数,对数据库进行操作,但GORM的效率比原生SQL要慢。这里课程使用的框架是Sqlc框架,该框架可以由SQL语句,生成对应的CRUD函数,直接对数据库进行CRUD操作。学会该框架以后,我们就可以用Go写单元测试,来测试我们的接口。面向框架工具开发就是,我们去看框架/工具的官方文档,然后按照说明就行相应的开发,在实际业务中,我们需要去文

2021-07-19 00:20:16 169

原创 后端开发大师课程(前三课总结)

1. 创建数据模型创建数据模型是业务开发第一步要做的事情,对于在公司开发来说,这一步通常由专门的PM完成,数据表的设计是比较关键的。对于个人开发者来说,有一些成熟的业务方案可以借鉴,在我们开发的时候可以直接借鉴过来。这里介绍的方法是是使用https://dbdiagram.io/d这个工具,该工具使用DSL语言生成适用于各个数据库的统一的建表语句,以及ER关系,例如2. 搭建数据库环境为了在本地进行开发,我们需要安装数据库服务端软件在本地,用来测试,当然测试数据库也可以放在云端。这里介绍

2021-07-18 23:05:28 199

原创 下周目标总结

首先,我们先实现一个C# job,可以获取VM上的磁盘数据,并且打印的控制台上,这一个Job完成以后,尝试将数据接入到dashboard中。这一步做完,去写一个orch job,拉起所有VM去执行上面的测盘检查Job。上一步做完,我们就实现了单个磁盘的dashboard的检查。至少就完成第一步,后续只要在此基础上做一些扩展和重构,就可以去实现更多的检查。预计两周内完成。...

2021-07-17 18:50:25 67

原创 windows获取磁盘大小和目录大小(C#)

1. 获取磁盘比如C盘,D盘大小,直接使用DriveInfo拿到。2. 目录大小没法直接获得,需要计算出来,使用.NET 4 API递归计算。

2021-07-15 23:38:52 659

原创 就业情况数据

说实话参考意义不大,心里有个数就行。

2021-07-14 23:22:55 169

原创 后端开发基础(数据库表设计,使用dbdiagram.io工具)

dbdiagram.io这个网站使用DSL语言创建数据表ER关系模型,以及生成对应的建表语句,是业务开发必须要掌握的东西。

2021-07-12 00:32:43 1003

原创 Leetcode 5793. 迷宫中离入口最近的出口 (走迷宫题目BFS)

const int dx[] = {0, 1, -1, 0};const int dy[] = {-1, 0, 0, 1};class Solution {public: int nearestExit(vector<vector<char>>& maze, vector<int>& entrance) { int n = maze.size(), m = maze[0].size(); qu...

2021-07-11 01:05:24 198

原创 LintCode Django 练习题目 统计用户数量 (调用User Model API)

from django.contrib.auth.models import Userfrom django.http.response import HttpResponsedef index(request): # write your code here # get the count of users from User and return it in HttpResponse return HttpResponse(User.objects.count...

2021-07-10 19:04:47 123

原创 Leetcode 981. 基于时间的键值存储 (由于按时间排序,直接二分)

class TimeMap {public: /** Initialize your data structure here. */ TimeMap() { } unordered_map<string, vector<pair<int, string>>> kvs; void set(string key, string value, int timestamp) { kvs[key]....

2021-07-10 15:53:31 86

原创 第一性原理计算源码结合理论学习法

由于一般凝聚态物理专业缺乏一定计算机知识(主要是Linux编译源代码相关),所以上述路线具有一定的陡峭度,需要花费大量时间,适合时间充裕的研一和大三大四的同学尝试。Step0Linux基础理论包括环境相关,文件相关和编译基础知识。Step1 Download源码完成编译并成功运行主流DFT软件是Fortran写的,编译可以用gcc,也可以用inter的编译器,这里面的难点有OpenMP和MPI的编译。DFT框架往往工程性比较大,想要搞清楚源码很困难。一些基于DFT框架做进一步计.

2021-07-10 12:43:41 209

原创 Leetcode 1418. 点菜展示(map模拟)

class Solution {public: vector<vector<string>> displayTable(vector<vector<string>>& orders) { vector<vector<string>> res; set<string> foods; map<int, unordered_map<strin...

2021-07-10 00:20:26 105

原创 Leetcode 726. 原子的数量 (解析化学分子式,字符串parse题目)

包括解析单个原子,以及解析数字,然后把原子和数字存到一起,map。解析()可以用空格处理。代码如下:typedef map<string, int> MPSI;class Solution {public: string countOfAtoms(string formula) { int i = 0, n = formula.size(); auto parseAtom = [&]() -> string { ...

2021-07-06 23:49:22 279 2

原创 ToDoList

1. Leecode 两道Parse题目,总结递归写法,以及Parse经验2. 重新配置sandbox,配置环境。

2021-07-05 23:37:45 83

原创 Lintcode DRF学习入门(理解serializers和viewset)

使用DRF,我们对数据模型实现一个序列化方法,我们可以用默认的方法实现:该方法通过ORM框架,将数据模型进一步序列化为json。serializers.pyfrom rest_framework import serializersfrom django.contrib.auth.models import User# -- write you code here --class UserSerializer(serializers.ModelSerializer): #..

2021-07-04 15:03:22 168

原创 LintCode Django定义模型教程

本练习重点要掌握的地方1. 根据项目描述,定义数据模型,数据模型的设计有原则,要符合数据库的三范式,要尽可能的解耦。2. 熟悉表的外键关联3. ORM框架4. 根据业务需求,在Django框架中添加索引,以及唯一约束。5. 借助Django框架编写单元测试,调试定义的模型。LintCode 2427 实现推文模型根据描述定义字段,只有三个字段,其中user字段是外键,使用Django框架定义好的,content是text,创建时间是日期类型,使用自动添加模版。from

2021-07-04 00:36:44 154

原创 Leetcode LCP 07. 传递信息 (图论基础问题DFS/BFS)

注意,这里由于信息是当向的,因此没有环,所以可以直接DFS。class Solution {public: int numWays(int n, vector<vector<int>>& relation, int k) { vector<vector<int>> edges(n); for (auto edge : relation) { int a = edge[0], b..

2021-07-02 23:28:20 249 1

空空如也

空空如也

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

TA关注的人

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