nlog

[LeetCode] 300. Longest Increasing Subsequence 最长递增子序列

给你一囗甜甜゛ 提交于 2020-04-20 16:52:29
Given an unsorted array of integers, find the length of longest increasing subsequence. Example: Input: [10,9,2,5,3,7,101,18] Output: 4 Explanation: The longest increasing subsequence is [2,3,7,101] , therefore the length is 4 . Note: There may be more than one LIS combination, it is only necessary for you to return the length. Your algorithm should run in O( n2 ) complexity. Follow up: Could you improve it to O( n log n ) time complexity? 这道题让我们求最长递增子串 Longest Increasing Subsequence 的长度,简称 LIS 的长度。我最早接触到这道题是在 LintCode 上,可参见我之前的博客 Longest Increasing Subsequence ,那道题写的解法略微复杂,下面来看其他的一些解法

若干排序算法的Python实现方法及原理

 ̄綄美尐妖づ 提交于 2020-04-20 04:10:02
今天突然想到了一个问题: 让你立即把堆排、快排等等排序算法写出来会不会,并且不能犯逻辑错误? 我说:不会,至少需要思考一下,并且可能还需要时间调试。 之前总是觉得,不就是排序算法吗?有什么大不了的?网上、书上一查一大堆。但是换个角度想:1+1 = ? 你会不会? 排序算法应是作为最基本的工具一样,是信手捏来的,所以我把《算法导论》上的几个排序问题看了并且实现了一遍;在此做分享: 冒泡排序: 冒泡排序应该算是比较简单并且使用广泛的排序算法之一了吧,但是它的效率并不怎么高,我们可以先看一下实现: def bubbleSort(A): length = len(A); for i in range(0, length): for j in range(length - 1, i, -1): if A[j] < A[j - 1]: (A[j], A[j - 1]) = (A[j - 1], A[j]); return A; a = [5, 0, 1, 3, 6, 2, 4, 9, 12, 11, 18, 20, 7, 8, 19, 13, 14, 17, 16, 10]; a = bubbleSort(a); print(a); 顾名思义,冒泡排序就像泡沫一样一层一层往上冒,需要一个一个比较; 比较次数(n-1) n / 2, 数据交换次数最坏情况3 (n-1)*n/2,最好情况0

ASP.NET Core 2.0 MVC项目实战

怎甘沉沦 提交于 2020-04-18 14:53:01
一、前言 毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的。之前实习时主要是做.NET的B/S架构的项目,主要还是用的那种传统的开发模式,只有一个项目用到了Web API,自己负责后端的接口功能实现。既然现在没办法改变现状,那就先改变自己吧。定了个计划,下班后慢慢的开始学习ASP.NET Core Web API和Vue,准备从前端到后端自己写一个小项目玩玩,毕竟代码这个东西,时间长了是会忘的。 嗯,有点扯远了。这个MVC项目是我的毕业设计,虽然写的比较烂,而且当时为了赶紧写完,代码的冗余程度有点高,但还是希望能给一些准备入门ASP.NET Core MVC的童鞋提供些借鉴吧。代码我放到Github上了,源码地址 https://github.com/Lanesra712/Danvic.PSU ,欢迎大神们拍砖,指出不足处。 二、项目介绍 毕业论文的课题是一个大学生的一个报名系统,主要是为了完成大学生报名过程中的一些数据维护,当然最后因为实在来不及了,好多都没做。。。项目主要使用到的相关技术如下所示: 项目框架:ASP.NET Core 2.0 MVC ORM:Entity Framework Core(使用Code First) 数据库引擎:MySQL SERVER 5.7 权限验证

实用的linux 命令(上)

丶灬走出姿态 提交于 2020-04-18 11:43:19
今天介绍几个我常用的Linux 命令,每个命令这里只介绍其常用参数。 对于每个 Linux 命令 都可以使用 man + 命令名称 ,查看其完整使用方法。 0,man man 命令是一个非常有用的命令,当你不会使用某个 Linux 命令时,可以使用 man 来查看其帮助文档。 man 命令查到的手册来源于目录 /usr/share/man/ ,可以看到该目录下有9 个这样的目录: >>> ls /usr/share/man/| grep man ______________________________ man1 man2 man3 man4 man5 man6 man7 man8 man9 man 手册分9 种,用数字 [1-9] 来区分,分别代表的含义如下(可以用 man man 命令来查看): | 数字 | 含义 | |--|--| | 1 | System commands 系统命令 | | 2 | System calls 系统函数 | | 3 | Library calls 库函数 | | 4 | Special files 特殊文件| | 5 | File formats 文件格式| | 6 | Games 游戏和娱乐| | 7 | Miscellaneous 杂项| | 8 | System administration commands 管理员 root 命令

我的第一个开源.NET Core项目

天涯浪子 提交于 2020-04-17 02:08:59
【推荐阅读】微服务还能火多久?>>> 背景介绍 我的第一个开源.NET Core 项目,功能很多,BUG肯定有,代码不是特别好,大佬勿喷!开源,随便搞哈! 软件架构 框架:.NET Core3.1 ORM:SqlSugar 数据库:Sqlserver08R2+ 后端UI:Layui 日志记录:log4+nlog 缓存:内存缓存+redis缓存 授权:基于cookie的JWT授权 IOC:使用Autofac框架进行构造函数注入 项目截图: 使用教程 直接 debug启动,数据库配置在appsettings.json文件里面 项目类型 :BS 项目地址 : https://gitee.com/duling/DL 功能模块 : 系统管理   字典类型管理   字典值   组织机构   菜单管理   日志管理   角色管理   管理员管理   图片管理   前端栏目管理 网站管理   用户管理   评论管理   关于我们   网站留言   友情链接管理   广告模块   广告位置   学校内容模块   文章模块   高校模块   标签模块 工具模块   代码生成 项目截图 : 来源: oschina 链接: https://my.oschina.net/u/4390958/blog/3236257

NLog EventProperties in .NET Core

Deadly 提交于 2020-04-16 04:32:08
问题 I'm using ILogger<MyController> to write logs using DI (see step 6) I'm also using NLog EventProperties I want to add traceId to all my logs in my controller automatically. This is working: logger.Info("Some log. TraceId:{traceId}", 123); However, then I need to change all my log commands (a lot of them!), which is a pain. If I do the following, it's not tread safe: using NLog; public class MyController : Controller { private static readonly Logger Logger = LogManager.GetCurrentClassLogger();

NLog EventProperties in .NET Core

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-16 04:31:00
问题 I'm using ILogger<MyController> to write logs using DI (see step 6) I'm also using NLog EventProperties I want to add traceId to all my logs in my controller automatically. This is working: logger.Info("Some log. TraceId:{traceId}", 123); However, then I need to change all my log commands (a lot of them!), which is a pain. If I do the following, it's not tread safe: using NLog; public class MyController : Controller { private static readonly Logger Logger = LogManager.GetCurrentClassLogger();

怎么在.Net Core3.0/ 3.1Webapi 中使用Log4net 写日志 及读取配置文件的信息

a 夏天 提交于 2020-04-12 08:27:55
1:安装Log4Net的 NuGet 包: 我们通常之需要安装这一个包即可,其他的主包会自动被添加进来: insatll-package Microsoft.Extensions.Logging.Log4Net.AspNetCore 3.0.0 (如果不行就直接NuGet可视化安装)! 2:Log4Net的配置文件的内容: <?xml version="1.0" encoding="utf-8" ?> <log4net> <!-- Define some output appenders --> <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender"> <file value="Errorlog\\log.txt" /> <!--追加日志内容--> <appendToFile value="true" /> <!--防止多线程时不能写Log,官方说线程非安全--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <!--可以为:Once|Size|Date|Composite--> <!--Composite为Size和Date的组合--> <rollingStyle value="Composite"

怎么在.Net Core3.0/ 3.1Webapi 中使用Log4net 写日志 及读取配置文件的信息

99封情书 提交于 2020-04-12 08:24:53
1:安装Log4Net的 NuGet 包: 我们通常之需要安装这一个包即可,其他的主包会自动被添加进来: insatll-package Microsoft.Extensions.Logging.Log4Net.AspNetCore 3.0.0 (如果不行就直接NuGet可视化安装)! 2:Log4Net的配置文件的内容: <?xml version="1.0" encoding="utf-8" ?> <log4net> <!-- Define some output appenders --> <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender"> <file value="Errorlog\\log.txt" /> <!--追加日志内容--> <appendToFile value="true" /> <!--防止多线程时不能写Log,官方说线程非安全--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <!--可以为:Once|Size|Date|Composite--> <!--Composite为Size和Date的组合--> <rollingStyle value="Composite"

算法的时间复杂度和空间复杂度详解

大憨熊 提交于 2020-04-07 05:04:21
通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。 算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量。而度量一个程序的执行时间通常有两种方法。 一、事后统计的方法 这种方法可行,但不是一个好的方法。该方法有两个缺陷:一是要想对设计的算法的运行性能进行评测,必须先依据算法编制相应的程序并实际运行;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法本身的优势。 二、事前分析估算的方法 因事后统计方法更多的依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法本身的优劣。 因此人们常常采用事前分析估算的方法。 在编写程序前,依据统计方法对算法进行估算。一个用高级语言编写的程序在计算机上运行时所消耗的时间取决于下列因素: (1). 算法采用的策略、方法;(2). 编译产生的代码质量;(3). 问题的输入规模;(4). 机器执行指令的速度。 一个算法是由控制结构(顺序、分支和循环3种)和原操作(指固有数据类型的操作)构成的