
算法题
龘麤三思
所有的牛逼都来自苦逼;自律更自由
展开
-
刷题-两数之和
func twoSum(nums []int, target int) []int { a := make(map[int]int) for i,v := range nums { if k,ok := a[target-v];ok { return []int{i, k} } a[v]=i } return nil}这个题,暴力直接搞定,for循环两次,便可以拿到结果,时间复杂度O(n2),可以.原创 2020-05-21 16:37:52 · 257 阅读 · 0 评论 -
6. Z 字形变换-力扣
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。L C I RE T O E S I I GE D H N比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:s...原创 2020-04-29 22:03:19 · 238 阅读 · 0 评论 -
最长回文子串
最长回文子串babad举例子babadboxoxxaxoxoxboxoxxaxoxoxdxxxxo回文子串相当于二维数组,需要知道开始和结束位置,表中o代表是回文,横纵坐标分表代表开始和结束位置,其中有一边(开始大于结束忽略,对称的)s 是字符串,长度用s(i,j)表示,i开始位置,...原创 2020-04-26 01:34:07 · 275 阅读 · 0 评论 -
割绳子
题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入描述: 输入一个数n,意义见题面。(2 <= n <= 60)输出描...原创 2020-04-21 23:06:06 · 527 阅读 · 0 评论 -
优美子数组
go版本func numberOfSubarrays(nums []int, k int) int { arr := make([]int,0) flag ,res := 0, 0 for i := 0; i <len(nums); i++ { flag++ if(nums[i] % 2 == 1){ ...原创 2020-04-21 21:36:57 · 286 阅读 · 0 评论 -
php-希尔排序
<?php/*希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因 DL.Shell于 1959 年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情...原创 2020-04-03 12:58:54 · 237 阅读 · 0 评论 -
php-直接插入排序
<?php/*直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。设数组为 a[0…n-1]。1. 初始时,a[0]自成 1 个有序区,无序区为 a[1..n-1]。令 i=12. 将 a[i]并入当前的有序区 a[0…i-1]中形成 a[0…i]的有序区间。3. i+...原创 2020-04-03 12:16:30 · 218 阅读 · 0 评论 -
n的阶乘末尾含0的个数
n的阶乘末尾含0的个数设计一个算法,计算出n阶乘中尾部零的个数样例11! = 39916800,因此应该返回 2挑战O(logN)的时间复杂度原理:ret=n/5 + n/(5*5) + n/(5*5*5) + ⋯but 没有搞明白<?php//O(logN) function test1($n){ $count = 0; $temp...原创 2019-09-11 19:05:31 · 331 阅读 · 0 评论 -
php排序-快排
<?phpfunction quily(&$arr, $l, $r){ if ($l < $r) { $i = $l; $j = $r; $x = $arr[$l]; while ($i < $j) { while (($i < $j) && ($x...原创 2019-08-23 14:31:36 · 167 阅读 · 0 评论 -
php 排序-冒泡
冒泡排序找出最小的一个放在<?php$a =[6,5,2,3,2,1];// print_r($b);for($i=0;$i<count($a);$i++){ for($j=$i+1;$j<count($a);$j++){ if($a[$j] < $a[$i]){ $k = $a[$i]; $a[$i] = $a[$j]; $a[$...原创 2019-08-20 00:02:38 · 282 阅读 · 0 评论