获取本机内网ip 获取本机内网ipfunc GetLocalIP() (string, error) { info, err := net.InterfaceAddrs() if err != nil { return "", err } for _,addr := range info{ if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { if ipnet.IP.To4() != nil { re
golang File.Seek和File.Truncate 场景在实际业务中这样一个需求,部署在某台机器上的程序,维护有一个id,这个id在程序内部每次收到请求时会 + 1,当程序崩溃重启时需要知道重启前的这个id值,这样当重启时就知道id应该取什么初始值了。这很明显是一个读少写多的场景。想到的方法有两种,一个是利用redis进行缓存,因为只需要维护一个id,并不需要很大的内存;一个是本地缓存,一个是按照文件进行维护,一个是按照共享内存维护。起初使用了redis维护,想着方便。但是在测试中发现,会出现一些dail timeout的情况,想着并不稳妥,所以决定本地
mysql批量建表和批量插入数据 1. 批量建表使用存储过程来实现-- 1. 先删除存储过程DROP PROCEDURE IF EXISTS `create_tables`;-- 2. 结束符改为$DELIMITER $-- 3. 创建存储过程CREATE PROCEDURE create_tables ()BEGINDECLARE `@i` INT (11);DECLARE `@createSql` VARCHAR (2560);SET `@i` = 0;WHILE `@i` < 100 DO --
2021华为软件精英挑战赛总结分享 2021华为软件精英挑战赛总结分享随着大赛的结束,自己的2021软挑也落下了帷幕,很幸运在自己学业生涯的最后几个月能够再参加一次华为软挑,虽然成绩不是特别好,但已经满足了。这是自己第二次参加华为的比赛,也是最后一次参加了,很感谢主办方华为,也是因为有了去年的比赛,才很幸运地在秋招能够拿到一些offer,在此,再次感谢华为公司,希望华为以后越来越好。比赛成绩队伍是成渝赛区,队伍名称:哑巴湖大水怪,成绩初赛:成渝第1,复赛:成渝第3,决赛弃赛。赛题介绍赛题本质就是一个装箱问题和资源调度问题,比赛链
Ubuntu 64位系统下编译32位C++可执行文件 有时候我们想在64位系统下模拟32位系统来看程序的结果,比如我们看一个结构体的大小,32位系统指针大小为4字节,而62为系统指针大小为8字节。步骤1:命令行安装这个支持多编译的包sudo apt-get install gcc-multilib g++-multilib步骤2:g++编译的时候加上 -m32 参数g++ -m32 test.cpp -o test这样运行 ./test 时就是32位的了...
Ubuntu18.04解决mysql重置登录用户密码一直失败的问题 apt命令安装完mysql后,直接输入mysql就可进入mysql,root@hecs-x-xlarge-2-linux-20200630100243:~# mysqlWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.7.30-0ubuntu0.18.04.1 (Ubuntu)Copyright (c) 2000, 2020, Oracle
leetcode六道买卖股票问题 买卖股票系列是动态规划的经典题目,六种变型一、买卖股票的最佳时机 Ileetcode 121题题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。【注意】:只有一次交易机会,那么这道题就简化了许多。我们只需要用一个数组来维护即可,数组 dp[i] 表示在第 i 天卖出能获得的最大利润,用一个变量minPrice来记录 i 以前的最小价格,那么
leetcode 正则表达式匹配 回溯法与动态规划详解 题目请实现一个函数用来匹配包含’. ‘和’'的正则表达式。模式中的字符 ’ . ’ 表示任意一个字符,而 ’ * ’ 表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串 " aaa " 与模式 " a.a " 和 " abaca " 匹配,但与"aa.a"和"aba"均不匹配。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa”p = “a
2020华为软挑成渝赛区初赛复赛方案分享 2020华为软挑初赛复赛方案分享队伍介绍初赛赛题介绍方案具体优化点代码待进步的地方复赛如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入队伍介绍 我们是来自成渝赛区电子科技大学的队伍,队伍名称:传说中的傲气仔,初赛成绩0.1561,成渝赛区第3。复赛练习赛成绩2.8
TopK问题,剑指offer40题 最小的k个数输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制:0 <= k <= arr.length <= 100000 <= arr[i] <= 10000方案TopK问题主要有一下几种方法sor
leetcode剑指offer 面试题38. 字符串的排列 题目输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]限制1 <= s 的长度 <= 8分析这本身是一个全排列的题,但是并没有要求按照顺序来,使用回溯法即可。这道题难点在于有重复的元素,所以需要去重。方案一回溯法:先用sort给数组排序,使相同元素相邻,使用一个visited数组来记录每个节点的状态,使用一个v
子集 - leetcode 题目描述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]来源:力扣(LeetCode)链接:https://leetcode-cn.com/p...
《STL源码分析》 rotate函数的random access iterator版 分析下篇 本文是接续上一篇文章,没看过的可以去看上一篇文章《STL源码分析》 rotate函数的random access iterator版 分析上篇测试代码//计算时间auto get_duration(const chrono::system_clock::time_point &start, const chrono::system_clock::time_point &fi...
《STL源码分析》 rotate函数的random access iterator版 分析上篇 《STL源码分析》 rotate函数的random access iterator版 分析函数描述《STL源码分析》那本书里介绍的rotate函数的作用是交换[first, middle)和[middle, last)内的元素,比如序列{1, 2, 3, 4, 5, 6, 7, 8, 9}在元素4那做旋转操作,序列就变为了{4, 5, 6, 7, 8, 9, 1, 2, 3},本质就是交换两个...
3、删除排序数组中的重复项 题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nu...
2、回文数 题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。代码样...
1、两数之和 题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]代码样例:...
广度优先搜索BFS 一、问题描述给出一个m×n的 矩阵,矩阵中的元素为0或1.称位置(x,y)与其上下左右四个位置(x,y+1)、(x,y-1)、(x+1,y)、(x-1,y)是相邻的。如果矩阵中又若干个1是相邻的(不必两两相邻),那么称这些1构成了一个“块”。求给定的矩阵中“块”的个数。二、输入针对每组测试数据,第1行是两个数n和m,接下来是m行n列由1和0组成的数据。三、输出给定矩阵“块”的个数四、样...
【递归入门】走迷宫 题目描述有一个nm格的迷宫(表示有n行、m列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这nm个数据和起始点、结束点(起始点和结束点都是用两个数据来描述的,分别表示这个点的行号和列号)。现在要你编程找出所有可行的道路,要求所走的路中没有重复的点,走时只能是上下左右四个方向。如果一条路都不可行,则输出相应信息(用-l表示无路)。 请统一用 左上右下的顺序拓展,也就...