算法
sensus森森
强大自己是解决问题的最佳途径
展开
-
LeetCode挑战题--最长公共前缀
Leet算法原创 2022-12-10 16:22:59 · 379 阅读 · 1 评论 -
关于日期计算的一些PHP封装的辅助函数
最近项目用到许多关于日期的相关计算,现在整理了一下,供大家参考下,后续慢慢补充……<?php /** * 给定一个日期,获取下一天 * @param string $date 1970-01-01 * @author sensus * @return string */ function getNextDay($date) {...原创 2017-09-28 17:59:20 · 360 阅读 · 0 评论 -
Leetcode挑战题——螺旋矩阵
给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]提示:m == matrix.lengthn == matrix[i].length1...原创 2021-08-03 11:15:30 · 316 阅读 · 0 评论 -
离散数学模拟微信红包算法升级版
可以自定义红包总金额,总包数,每包最小金额<?php /** * 红包类 */ class RedPacket { // 要发的红包总金额 private $total = 0.01; // 总共要发红包总包数 private $bags = 1; // 每包最小红包金额数 private $min = 0.01; functio原创 2021-07-27 16:41:50 · 504 阅读 · 0 评论 -
给定四个坐标点,判断它们能不能组成一个矩形?
已知四个点的坐标为:[0,0],[0,1],[1,1],[1,0],判断它们能不能组成一个矩形分析 :至少有三个内角都是直角的四边形是矩形,有一个内角是直角的平行四边形是矩形,对角线相等的平行四边形是矩形。矩形是一种特殊的平行四边形,正方形是特殊的矩形。矩形也叫长方形。如图所示,如果A、B、C、D四点构成矩形的话,那么△ABC、△BCD就是直角三角形,AC=BD,AD=BC,只要求证...原创 2019-07-20 00:27:12 · 4772 阅读 · 0 评论 -
幸福数字
题目介绍:幸福的数字是由以下过程定义的数字:从任何正整数开始,将数字替换为数字的平方和,并重复该过程,直到数字等于1,例如19是幸福数字。给定一个数,计算是不是幸运数。<?php $number = 91001; if(!is_numeric($number)){ exit('error'); } luckyNumber($numbe...原创 2019-07-03 14:28:08 · 2169 阅读 · 0 评论 -
JavaScript实现数学里的排列组合的A和C运算
//自定义组合函数(就是数学排列组合里的C) function combination(m,n){ return factorial(m,n)/factorial(n,n);//就是Cmn(上面是n,下面是m) = Amn(上面是n,下面是m)/Ann(上下都是n) } //自定义排列函数(就是数学排列组合里的A) function原创 2017-06-05 16:53:01 · 9511 阅读 · 0 评论 -
PHP实现组合C运算,从一个数组中取出m个数,有几种组合?有哪些组合?
//从$arr数组中,获取$m个数字组成数组,也就是排列组合的C运算符 function getCombinationToString($arr,$m){ $result = array(); if($m == 1){ return $arr; } if($m == count($a原创 2017-06-05 18:02:56 · 3374 阅读 · 1 评论 -
Leetcode挑战题——2 Keys Keyboard
Initially on a notepad only one character 'A' is present. You can perform two operations on this notepad for each step:Copy All: You can copy all the characters present on the notepad (partial c原创 2017-08-09 16:25:22 · 488 阅读 · 0 评论 -
2017年网易校招算法编程题:优雅的点(PHP版)
题目如下:小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。 例如:半径的平方如果为25 优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12个点。 function原创 2017-06-11 01:37:16 · 1213 阅读 · 2 评论 -
2017年网易校招算法编程题:数论 (PHP版)
小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。例如:f(44) = 11.现在给出一个N,需要求出 f(1) + f(2) + f(3).......f(N)例如: N = 7 f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 +原创 2017-06-11 01:35:01 · 693 阅读 · 0 评论 -
php的crc32函数使用时需要注意的问题(不然就是坑)
前几天写了一个分表程序,用的hash算法是crc32.分表的函数如下:复制代码代码如下: function _getHash($username) { $hash = crc32($username) % 512; return $hash; } function _getTable($us转载 2017-07-17 16:14:18 · 1830 阅读 · 0 评论 -
二维数组排列组合问题(不考虑顺序)
function getArrSet($arrs,$_current_index=-1){ //总数组 static $_total_arr; //总数组下标计数 static $_total_arr_index; //输入的数组长度 static $_total_count; //临时拼凑数组 static $_原创 2017-06-05 15:05:25 · 1756 阅读 · 0 评论 -
求一个数组,n个元素的不同组合(排列组合问题)
array('a1','b2','c3','d4','e5','x1','y1','z1');比如以上数组我想要这个数组元素中三个元素的不同组合,例如下array('a1','b2','c3');array('a1','b2','d4');array('a1','b2','e5');array('a1','b2','x1');array('a1','b2','y1'转载 2017-06-04 23:50:05 · 9188 阅读 · 0 评论 -
求一个数组的全排列,所有组合
如123,有123,132,312,321,213,231,6种组合$source = array('我','的','中','国','心');sort($source); //保证初始数组是有序的$last = count($source) - 1; //$source尾部元素下标$x = $last;$count = 1; //组合个数统计echo implode('原创 2017-06-04 23:26:56 · 3651 阅读 · 0 评论 -
有5个数,求和最接近于66的4个数(背包问题)
$a = 66;$arr = array(15,20,10,6,99);function ss($a,$arr){$count = count($arr);$array = array();for($i=0;$i$r = $arr[$i];unset($arr[$i]);//去掉当前的数$sum = abs(array_sum($arr) - $a);//求余下的数原创 2017-06-04 23:00:47 · 864 阅读 · 0 评论 -
二分法查找示例
二分法,又称分半法,是一种方程式根的近似值求法。对于区间[a,b]上连续不断且f(a) ·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫做二分法(bisection)。<?phpfunction binarySearch($a, $val){ $low = 0; $...原创 2017-05-26 10:09:35 · 1666 阅读 · 0 评论