随笔分类 - leetcode算法
摘要:优于leetcode官方解法,时间3ms,超过94.33%的人,空间51.5MB,超过51.74%的人。 题目 给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中
阅读全文
摘要:题目 正则表达式匹配 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符 ‘*’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 示例 1: 输入:s = “aa” p = “a”
阅读全文
摘要:题目 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。 示例 1: 输入:x = 121 输出:true 示例 2: 输入:x = -121 输出:fal
阅读全文
摘要:题目 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(
阅读全文
摘要:题目 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1: 输入:x = 123 输出:321 示例 2: 输入:
阅读全文
摘要:题目 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下: P A H N A P L S I I G Y I R 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比
阅读全文
摘要:题目 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = “babad” 输出:“bab” 解释:“aba” 同样是符合题意的答案。 示例 2: 输入:s = “cbbd” 输出:“bb” 示例 3: 输入:s = “a” 输出:“a” 示例 4: 输入:s = “ac” 输
阅读全文
摘要:题目 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 示例 1: 输入:nums1 = [1,3], nums2 = [2] 输出:2.00000 解释:合并数组 = [1,2,3] ,中位数 2 示例 2: 输入:nu
阅读全文
摘要:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示
阅读全文
摘要:二倍平均值法 优势在于不需要先把每个人得多少算出来,只有拆红包的时候才会算出这个人得多少,减少实时算力 同时保证了每个人拼手气得到的平均值相同 设有10个人,红包总额100元。 100/10X2 = 20, 所以第一个人的随机范围是(0,20 ),平均可以抢到10元。 假设第一个人随机到10元,那么
阅读全文
摘要:算法思路 从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元素(已排序)大于新元素,将该元素移到下一位置;重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;将新元素插入到该位置后;重复步骤2~5。 动图: 代码实现 简洁版代码 publi
阅读全文
摘要:算法思想 从第一个数开始,和后一个数对比,如果前面的大于后面的就对换掉,大的数会不断的往后走,走到最后,就像冒泡泡一样,把最大的数一个个的找出来从最后往前放。走完所有的就排序好了。 1 3 5 2 第一轮 2 和5换 5是最大的放到了最后 1 3 2 5 第二轮 只看前面的1 3 2了 3 和 2
阅读全文
摘要:快速排序/快排 首先理解算法思路 由于不打算自己再画图,图作者为:https://blog.csdn.net/nrsc272420199/article/details/82587933 假设最开始的基准数据为数组第一个元素23,则首先用一个临时变量去存储基准数据,即tmp=23;然后分别从数组的两
阅读全文
摘要:1、使用方法 import com.gfkd.yfaps.util.CurveFittingUtil; public class testCurveFittingUtil { //用来生成数据 static double y(double x) { return 5+4*x+3*x*x+2*x*x*
阅读全文
摘要:引言:这几天工作这边同事遇到了一个问题,对十五万条数据进行计算,插入数据库的时候耗时很严重,使用了批量插入对十五万条数据插入仍然耗费了30秒,前面计算也耗费了二十多秒,系统流畅度因此很难堪。经过我的排查发现主要是两个点需要优化。 1)计算的算法冗余,优化前23秒计算完成,优化后0.8秒完成计算(由于
阅读全文
摘要:核心算法思想: KMP算法 有如下两个字符串 String str1="1234561237802";//被检测字符串 String str1="121234161137102";//提供对比的字符串 利用KMP算法可找出最长公共子串为s="1234",则相似度float rate=(float)s
阅读全文
摘要:思路: 调用detect方法即可得到重复率(float) 代码如下: package com.hnisc.cmpas.util; import java.util.ArrayList; import java.util.Date; import java.util.List; public clas
阅读全文