自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++11线程安全队列实现

实现了一个C++11线程安全队列,可以作为模板使用。#include <functional>#include <iostream>#include <memory>#include <mutex>#include <thread>#include<vector>#include <condition_variable>template <typename T>class threadsa

2021-09-15 17:20:29 1717

原创 pytorch:建模时Lambda表达式的使用,使建模更加一般化

以VGG模型为例:class LambdaBase(nn.Sequential): #lambda表达式 def __init__(self, fn, *args): super(LambdaBase, self).__init__(*args) self.lambda_func = fn def forward_prepare(sel...

2018-10-19 23:31:26 5501

原创 pytorch tips:使pytorch代码在不改动情况在有GPU自动在GPU运行

定义:#gpu or notdevice = torch.device("cuda" if torch.cuda.is_available() else "cpu")使用:import torchimport torch.nn as nnimport torch.optim as optimimport torchvisionimport torchvision.tran...

2018-10-19 23:13:32 7487

原创 LeetCode: 204. Count Primes判断是否为素数的高效方法

链接: https://leetcode.com/problems/count-primes/#/description Description: Count the number of prime numbers less than a non-negative number, n. 计算小于n的素数的个数。 这道题用普通方法来判断素数的话必然超限,在别人的博客上看到了一个比较高效的判断素

2017-07-19 17:39:24 1538

原创 大数乘法

大数乘法是一个经常会遇到的问题,在Java中这个问题很容易解决,直接用BigInteger就okl了。但是在C++、C中就不那么容易了,在做LeetCode过程中就遇到了这道题,第43题“Multiply Strings”:https://leetcode.com/problems/multiply-strings/#/description。 我在网上查了一下,也看了LeetCode上的discu

2017-07-17 21:09:04 338

原创 C++: 谓词函数、函数对象(仿函数)、回调函数总结

谓词函数:predicate function。什么是谓词,其实就是一个判断式,说白了就是一个返回bool值的函数。(这里说明了谓词可以有2种形式)几元就是函数有几个参数,至于定义和使用,函数定义和一般的函数定义一样。函数对象:又称做仿函数(functor),它的本质是重载operator()操作符的类。使用就是在那些以这种需要返回bool值的函数作参数的函数里用了。回调函数:callback fu

2017-07-08 11:03:14 1331

原创 学习笔记:一本书读懂TCP/IP

1、 OSI (Open System Internet 开放系统互联)参考模型: 物理层Physical,数据链路层Data Link,网络层Nextwork,传输层Transport,会话层Session,表示层Presentation,应用层Application。2、TCP/IP参考模型: 网络接口层,互联网层,传输层,应用层。3、TCP报文包括了首部和数据部分,首部:(1)源端口和目的端口

2017-07-06 08:40:58 1465 1

原创 STL: Map 的操作

之前去笔试考了Map的操作,但是忘了,在这学习一下。1、map构造方法有几种,通常用的一种如:Map<int,int> map; 2、map的插入操作: map.insert(pair<int, int>(1,1)) 或者用数组方式插入(相同键可以覆盖)map[1] = 1; map[2] = 2;3、map的大小: map.size()4、map的遍历: (1)使用迭代器进行遍历。 (

2017-07-04 20:02:22 342

原创 算法设计课作业证明题

题目:8.15 题目描述:证明求两个图的最大公共子图是NP完全问题。证明: 最大公共子图问题是给定两个图,要求去掉一些点后,两个图都得到一个节点数至少为b的子图,且两个子图完全相同。 首先假设最大公共子图存在且给出了子图的顶点是哪几个,那么可以在多项式时间内检验出这个解是否正确,所以最大公共子图问题是NP问题,接下来只需要证明它是NP难的,就可以证明它是NP完全问题。 我们已经知道求图的具有

2017-07-03 11:36:55 594

原创 LeetCode:8. String to Integer (atoi)

题目链接:https://leetcode.com/problems/string-to-integer-atoi/#/description愿意就是把string型转化成int型,但是其中有很多种情况,比如说遇到字母,符号,空格,溢出的处理办法,经过很多次的测试,终于accept了。代码如下:class Solution {public: int myAtoi(string str) {

2017-06-28 18:35:55 199

原创 LeetCode: 368. Largest Divisible Subset

题目链接: https://leetcode.com/problems/largest-divisible-subset/#/description这是一道动态规划题,重点是写出他的状态转移方程,这道题状态转移方程是: dp[i] = dp[j] +1 ( 当nums[j] % nums[i] == 0)。 所以可以得出解题代码:class Solution {public: vector

2017-06-14 22:37:52 204

原创 LeetCode: Subsets

题目链接:https://leetcode.com/problems/subsets/#/description 意思就是给定一个数组,输出它的所有子集(空集也包括)解题方法: 使用回溯法,利用递归来实现。代码如下:class Solution {public: vector<vector<int>> subsets(vector<int>& nums) { vector

2017-06-14 17:03:09 269

原创 LeetCode: N-Queens II

题目链接:https://leetcode.com/problems/n-queens-ii/#/description这道题也是八皇后问题的变形,不过上一题是要求输出各组不同的解,这道题是输出解的个数,只需要稍微改动就可以了,设置一个变量sum来记录解的总数。每得到一组解sum就加一即可。class Solution {public: int *x; int sum = 0;

2017-06-12 10:56:31 212

原创 LeetCode: N-Queens

题目链接:https://leetcode.com/problems/n-queens/#/description这是十分经典的八皇后问题的变形,以八皇后问题为例,在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。方法: 回溯法。

2017-06-12 10:09:47 225

原创 LeetCode: Maximim SubArray

https://leetcode.com/problems/maximum-subarray/题目原意是给定一个序列,找出和最大的连续子序列。如:[-2,1,-3,4,-1,2,1,-5,4],最大子序列是[4,-1,2,1],返回最大和是6。经典的动态规划问题,在没有思路前一直在用贪心算法的思路,后来看了别人的博客才发现思路不对,应该用动态规划来做。这道题代码很简单,但是思路却没那么简单。 一个重

2017-06-12 09:57:26 256

原创 LeetCode: count and say

题目:The count-and-say sequence is the sequence of integers with the first five terms as following:111211211111221 1 is read off as “one 1” or 11. 11 is read off as “two 1s” or 21. 21 is read off

2017-06-09 11:09:24 225

原创 LeetCode: Combination Sum

题目: Given a set of candidate numbers (C) (without duplicates) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.The same repeated number may be chosen fro

2017-06-08 10:32:18 179

转载 一天一个Linux命令: cat

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回S

2017-05-25 18:25:10 658

转载 一天一个Linux命令:touch

linux的touch命令,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。命令格式: touch [选项] 文件命令参数: -a 或–time=atime或–time=access或–time=use  只更改存取时间。 -c 或–no-create  不建立任何文档。 -d  使用指定的日期时间,而非现在的时间。 -f  此参数将忽略不予处理,

2017-05-24 08:03:08 267

原创 Leetcode: Longest Palindromic Substring

问题描述: Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example:Input: “babad”Output: “bab”Note: “aba” is also a valid answer. Example

2017-05-22 08:15:27 243

原创 一天一个Linux命令:cp

cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。 一般情况下,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-

2017-05-18 08:02:23 344

原创 一天一个Linux命令:mv

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。1.命令格式 mv [选项] 源文件或目录 目标文件或目录2.命令功能 mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果: 1、如果目标文件是到某一目录文件的路径,源

2017-05-17 16:34:07 246

转载 一天一个算法: 前缀,中缀,后缀表达式的转换

中缀表达式转换成前缀和后缀: http://blog.youkuaiyun.com/antineutrino/article/details/6763722/后缀表达式转中缀表达式: http://blog.youkuaiyun.com/qq789045/article/details/51018042

2017-05-11 16:43:18 326

原创 每天一个Linux命令:rmdir

rmdir命令:rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的。(注意,rm - r dir命令可代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。 注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。来自: http:

2017-05-11 07:43:07 288

转载 一天一个算法: O(n)回文串算法—Manacher算法

本文转自O(n)回文子串(Manacher)算法 问题描述:输入一个字符串,找出其中最大的回文子串,子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看相同,如abba和yyxyy。解析:这里介绍Manacher算法,算法的时间复杂度为O(n)。算法基本要点:首先用一个非常巧妙的方式,将所有可能的奇数/偶数长度的回文子串都转换成了奇数长度:在每个字符的两边都插入一个特殊的符号。

2017-05-10 15:09:54 268

转载 每天一个Linux命令:rm

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。 注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一

2017-05-10 08:04:52 449

原创 每天一个算法: 全排列算法

全排列算法:给出一个有n个元素的集合,求出这个集合所有可能的排列。 一、 递归的方法void permutation(char *arr, int k , int m){ if(k == m){ for(int i =0; i< m; i++){ cout<<arr[i]; //输出排列

2017-05-09 16:11:36 1487

原创 LeetCode: Remove Duplicates from Sorted Array II

Remove Duplicates from Sorted Array II Follow up for “Remove Duplicates”: What if duplicates are allowed at most twice?For example, Given sorted array nums = [1,1,1,2,2,3],Your function should ret

2017-05-09 09:50:26 206

转载 每天一个Linux命令:mkdir

本文转载自竹子-博客。linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。 主要选项: -p 文件路径,可以创建多个目录; -v,每次创建新目录都显示信息。1.命令格式: mkdir [选项] 目录…2.命令功能: 通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹

2017-05-09 08:30:38 490

原创 一天一个算法: 随机洗牌算法

洗牌算法是我们常见的随机问题,在玩游戏、随机排序时经常会碰到。它可以抽象成这样:得到一个M以内的所有自然数的随机顺序数组。 洗牌算法大多都是建立在随机数的基础上的,现在介绍几种随机数基础上的随机洗牌算法: (1)第一种可以简单描述成:随机抽牌,放在另一组;再次抽取,抽到空牌则重复抽。抽到空牌则重新抽的话,越到后面抽到空牌的几率就越大,所以显然是不合理的。我们可以进一步优化:拍抽走后,原牌变少,我

2017-05-08 16:42:23 737

原创 LeetCode: Next Permutation

Next Permutation *Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.If such arrangement is not possible, it must rearrange it as th

2017-05-03 17:58:59 190

原创 LeetCode: 3 Sum and 3Sum Closest问题

3 Sum closest *Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input

2017-04-27 11:05:19 325

原创 LeetCode:Rotate Image

Rotate Image *You are given an n x n 2D matrix representing an image.Rotate the image by 90 degrees (clockwise).*解题过程 : 用一个二维数组来模拟一个图像,要把图像顺时针旋转90度,旋转中心为图像的中心。基本思路是把图片分为行数/2层,然后一层层进行旋转,每一层有上下左

2017-04-09 16:37:44 188

原创 LeetCode:Longest Substring Without Repeating Characters

Longest Substring Without Repeating Characters *Given a string, find the length of the longest substring without repeating characters.Examples:Given “abcabcbb”, the answer is “abc”, which the lengt

2017-03-27 10:16:52 178

原创 LeetCode: 3Sum

3Sum *Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note: The solution set must not cont

2017-03-13 10:52:47 181

原创 LeetCode: Reverse Integer

Reverse Integer *Reverse digits of an integer.Example1: x = 123, return 321 Example2: x = -123, return -321click to show spoilers.Note: The input is assumed to be a 32-bit signed integer. Your fu

2017-03-12 19:20:16 180

转载 JAVA常用API

常用Java API 2 3 一、 java.io.BufferedReader类(用于从文件中读入一段字符;所属套件:java.io) 4 5 1、 构造函数BufferedReader(java.io.FileReader FileReader变量) 说明:新建一个BufferReader对象。 6 7 2、 close方法 void close() 说明:关闭B

2017-03-11 09:06:51 228

转载 有return的情况下try catch finally的执行顺序

结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally

2017-03-09 18:24:06 172

转载 java中关于try、catch、finally中的细节分析

下面看一个例子(例1),来讲解java里面中try、catch、finally的处理流程1234567891011121314151617181920212223pub

2017-03-09 18:17:53 161

转载 memset()函数及其作用

1. memset()函数原型是extern void *memset(void *buffer, int c, int count)        buffer:为指针或是数组,              c:是赋给buffer的值,       count:是buffer的长度.       这个函数在socket中多用于清空数组.如:原型是memset(buffe

2017-03-09 10:29:48 179

C#计算器源代码

基于C#的一个简单短小的计算器,适于初学者

2014-05-13

空空如也

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

TA关注的人

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