All

宝石与石头-LeetCode771
2018 年 12 月 19 日

题目描述

给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。

J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。

示例 1:

输入: J = “aA”, S = “aAAbbbb” 输出: 3 示例 2:

输入: J = “z”, S = “ZZ” 输出: 0 注意:

S 和 J 最多含有50个字母。 J 中的字符不重复。

这篇文章主要写一下我在利用goaccess查看nginx生成的访问日志时的经历。

​ 最终会生成一个下面类似的网页:

goaccess网页

最长公共前缀-LeetCode14
2018 年 12 月 12 日

题目描述

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

输入: \["flower","flow","flight"]
输出: "fl"

示例 2:

输入: \["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z

罗马数字转整数-LeetCode13
2018 年 12 月 10 日

题目描述

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。 X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。 C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。 给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。

示例 1:

输入: “III” 输出: 3 示例 2:

输入: “IV” 输出: 4 示例 3:

输入: “IX” 输出: 9 示例 4:

输入: “LVIII” 输出: 58 解释: L = 50, V= 5, III = 3. 示例 5:

输入: “MCMXCIV” 输出: 1994 解释: M = 1000, CM = 900, XC = 90, IV = 4.

题目描述

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

示例 1:

给定数组 nums = [1,1,2],

函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。

你不需要考虑数组中超出新长度后面的元素。 示例 2:

给定 nums = [0,0,1,1,1,2,2,3,3,4],

函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。

你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝 int len = removeDuplicates(nums);

// 在函数里修改输入数组对于调用者是可见的。 // 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。 for (int i = 0; i < len; i++) { print(nums[i]); }

这个题目有几个要求,原地算法,即不能使用额外的空间,空间复杂度要求O(1)。

同时我们不需要考虑数组中超出新长度后面的元素,实例1,我们最后给出的结果是[1,2,*]。第三个元素肯定是有的,不用对它进行重置等操作。

同时这个题,要求的返回结果是新的长度,即没有重复元素的个数。

旋转数组—LeetCode189
2018 年 08 月 29 日
加一—LeetCode66
2018 年 08 月 27 日

题目描述

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2:

输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。

一个数组,每一位表示一个数字,高位在前面,然后需要将这个值加一,并且按照数组的形式返回。

两数之和—LeetCode1
2018 年 08 月 25 日

题目描述

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]

网络租车系统
2018 年 06 月 10 日

毕业设计-基于SSM架构的网络租车系统

项目来源:

之前就做了一个简易的租车都不能说是项目的项目,就是将数据库中的信息在页面以表格形式展示,输入租车天数,租赁数量确定租车信息。所以毕业设计以此为思路做一个项目。

这个项目也是之前做的,也没有进行优化,如果需要代码可以给我发送邮件:liunaijie1996@163.com 。并且希望你能进行一些改进,这才是开源项目的目的,而不是让大家做伸手党。

– 项目代码已经找不到了。。。 -2019-11-11

项目说明:

项目定位是一个租车平台,即将线下租车公司的资源进行整合。让线下租车公司进驻平台,推广平台,获取用户。

架构: SSM(spring+springmvc+mybatis) 使用该框架主要是实习期间接触了这个框架(第一次使用框架),觉得这个框架整体较之前写的简单,例如在controller类文件中加注解等方式就可以配置控制层。 maven:使用maven方式构建项目,整体项目小,不在有lib文件夹,调整jar包只需修改pom文件。

Java实现经典问题算法
2017 年 11 月 27 日