algorithm
文章平均质量分 53
fareast_mzh
善假于物
展开
-
根据经纬度计算2个地理位置的距离
* Math.php<?phpnamespace CarV2\Utils\Geo;class Math{ const PI = 3.14159265258979; public static function abs($x) { return $x < 0 ? -$x : $x; } public static function sqrt($x, $err=1e-15) { if ($x < 0) {原创 2021-11-01 13:03:27 · 353 阅读 · 0 评论 -
PHP实现 最大子序列之和 最大子段和
http://www.imooc.com/article/4313#comment* Solution.php<?phpclass Solution{ /** * dp * @param $a array * @return int|mixed */ public function maxsub0($a) { ...原创 2020-01-16 18:31:24 · 404 阅读 · 0 评论 -
[LeetCode]#10 Regular Expression Matching javascript字符串包含
https://leetcode.com/problems/regular-expression-matching/* isMatch.js/** * @param {string} s: text * @param {string} p: pattern * @return {boolean} */var isMatch = function(s, p) { if ...原创 2019-06-12 23:12:34 · 292 阅读 · 0 评论 -
[LEETCODE]#3 Longest Substring Without Repeating Characters 最长不重复的子串长度, Sliding Window, 滑动窗口
https://leetcode.com/problems/longest-substring-without-repeating-characters/ Given a string, find the length of the longest substring without repeating characters.Example 1:Input: "abcabcbb"...原创 2018-12-09 17:07:55 · 326 阅读 · 0 评论 -
最长公共子串问题 Longest Common Substring LCST 动态规划
* 题目:给定2个字符串$str1, $str2, 返回2个字符串的最长公共子串e.g.$str1 = "1AB2345CD";$str2 = "12345EF"返回: "2345"要求: 如果$str1 长度为M, $str2长度为N, 实现时间复杂度为O(MxN), 额外空间复杂度为O(1)的方法* LCST.php<?php/** * Cr...原创 2018-12-01 23:14:33 · 402 阅读 · 0 评论 -
javascript quicksort quick sort, insertion sort 三分中值法 快速排序 插入排序 heapsort, mergesort
* Arr.jsfunction Arr() { this.cmp = Arr.defaultCompareFunction;}Arr.prototype = [];Arr.fromArray = function(/* Array */ a) { var _this = new Arr(); for (var i = 0; i < a.length;...原创 2018-11-15 10:18:58 · 538 阅读 · 0 评论 -
javascript 求最大前5个数; 对象 深拷贝 deep copy, clone
* 用数组function getTopN(a, n) { function _cloneArray(aa) { var n = aa.length, a = new Array(n); for (var i = 0; i < n; i++) { a[i] = aa[i]; } return a; } funct...原创 2018-07-17 10:22:00 · 383 阅读 · 0 评论 -
heapsort Heap Sort 堆排序
* sort/Heap.php<?php/** * Created by PhpStorm. * User: Mch * Date: 2018/11/4 * Time: 10:12 PM */namespace sort;class Heap { /** @var Comparator */ protected $comparator; p...原创 2018-11-04 22:35:13 · 534 阅读 · 0 评论 -
javascript sha1 php加密函数sha1用js实现
/* * UTF-8 encoding */ function utf8_encode(argString) { return unescape(encodeURIComponent(argString)); } /***********************************************************...原创 2018-11-06 12:16:07 · 942 阅读 · 0 评论 -
php shell sort
* 目录结构 sort/{ArrayUtil.php,Comparator.php,Shell.php} autoload.php index.php* sort/Shell.php<?phpnamespace sort;class Shell { protected $comparator; public function __cons...原创 2018-10-28 10:41:56 · 290 阅读 · 0 评论 -
Longest Palindromic Substring (Manchester)
https://leetcode.com/problems/longest-palindromic-substring/Given a strings, find the longest palindromic substring ins. You may assume that the maximum length ofsis 1000.Example 1:Input: "...原创 2019-03-13 23:07:03 · 257 阅读 · 0 评论 -
golang DP LCS 最长公共子序列的长度
https://medium.com/@codingfreak/top-50-dynamic-programming-practice-problems-4208fed71aa31. 暴力递归* LCS.gopackage mainimport ( "fmt")func LCSLength(x []byte, y []byte, m int, n int) int {...原创 2019-03-17 22:20:17 · 1248 阅读 · 0 评论 -
projecteuler#3 Largest prime factor 素数
* Prime.php<?php/**https://projecteuler.net/problem=3The prime factors of 13195 are 5, 7, 13 and 29.What is the largest prime factor of the number 600851475143 ? */class Prime { /** @...原创 2018-10-07 14:59:27 · 399 阅读 · 0 评论 -
位运算
*获取数字 num 二进制形式第 bit 位的值。注意:1、bit 从 1 开始2、返回 0 或 13、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1input:128, 8output: 1function valueAtBit(num, bit) { // 1000 0000 return num & 1<<(bit...原创 2018-06-30 21:56:00 · 227 阅读 · 0 评论 -
常见的Hash函数 Hash Function HashFunction hash
hash functions#define M 249997#define M1 1000001#define M2 0xF0000000// RS Hash Function unsigned int RSHash(char*str){unsigned int b=378551 ;unsigned int a=63689 ;unsigned i...转载 2019-08-05 11:31:59 · 471 阅读 · 0 评论 -
joseph约瑟夫环问题 php实现
双向链表实现:* index.php<?phpfunction __autoload($className) { include dirname(__FILE__).'/'.$className.'.php';}echo DblLinkedListImpl::solution(10, 3).PHP_EOL;echo RecursiveImpl::joseph(...原创 2019-07-21 13:56:13 · 374 阅读 · 0 评论 -
leetcode palindrom number
https://leetcode.com/problems/palindrome-number/submissions/* isPalindrome.js/** * @param {number} x * @return {boolean} */var isPalindrome = function(x) { if (x < 0) {return false;} ...原创 2019-06-10 23:35:59 · 257 阅读 · 0 评论 -
leetcode atoi
https://leetcode.com/problems/string-to-integer-atoi/submissions/* Solution.jsfunction Solution() {}const Character = { isDigit: function(s) { var code = s.charCodeAt(0); return 48 <= ...原创 2019-06-10 00:20:18 · 310 阅读 · 0 评论 -
Math.js sqrt isPrime 开方 平方根, 素数
* MyMath.jsfunction MyMath() {}MyMath.abs = function(x) { if (x < 0) {return -x;} else return x;}MyMath.isPrime = function(/* int */n) { if (n < 2) return false; if (n ==...原创 2019-06-09 08:17:47 · 814 阅读 · 1 评论 -
leetcode zig-zag conversion
* ZigZag.js/*https://leetcode.com/problems/zigzag-conversion/"PAYPALISHIRING"row x 3P A H NA P L S I I GY I R*/function ZigZag() {}String.prototype.forEach = function(fn) { ...原创 2019-06-02 22:19:57 · 344 阅读 · 0 评论 -
字母易位词(anagram)
题目来源:https://blog.csdn.net/csdn_bang/article/details/83044235两个单词如果包含相同的字母,次序不同,则称为字母易位词(anagram)。例如,“silent”和“listen”是字母易位词,而“apple”和“aplee”不是易位词。请定义函数检查两个单词是否是字母易位词。可以假设两个单词字母均为小写。要求算法复杂度尽量低* ...原创 2018-10-15 15:30:55 · 1759 阅读 · 0 评论 -
Top K problem 堆实现 找到无序数组中最小(最大)的k个数
相关文章:https://blog.csdn.net/fareast_mzh/article/details/83688240问题描述:有N(N>>10000)个整数,求出其中的前K个最大的数。(称作Top k或者Top 10)问题分析:由于(1)输入的大量数据;(2)只要前K个对整个输入数据的保存和排序是相当的不可取的. 可以利用数据结构的最小堆来处理该问题, ...原创 2018-09-28 00:01:50 · 1138 阅读 · 0 评论 -
最大子段和问题 javascript实现
/** * 问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n], * 求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。 * 当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: * Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n * 例如,当(a[1],a[2],a[3],a...原创 2018-07-01 13:34:00 · 291 阅读 · 0 评论 -
小年糕 后台开发 3个题目 array_chunk, 100块钱找零钱(动态规划 dynamic programming), 双向循环链表 llist 删除节点...Linux list
1. array_chunk 实现 http://php.net/manual/en/function.array-chunk.php<?phpfunction my_array_chunk($a, $sz) { $b = []; if ($sz < 1) { throw new Exception("size is less than 1"); ...原创 2018-07-30 10:19:00 · 816 阅读 · 1 评论 -
php反转部分单向链表 LinkedList reverse 链表反转
* inversePart 给定一个单向链表的头结点head, 以及2个整数from和to,在单向链表上把第from个节点到to个节点这一部分进行反转e.g.1->2->3->4->5->null, from=2, to=4调整结果为: 1->4->3->2->5->null1->2->3->null...原创 2018-08-13 23:13:17 · 1121 阅读 · 0 评论 -
Java quicksort 快速排序 quick sort Comparable Comparator
* Java基本版package cn.mediamix;import java.util.LinkedList;public class QuickSort { public static void qsort(int[]a) { _qsort(a, 0, a.length-1); } private static void _qsort(int []a, int l...原创 2018-08-05 13:28:00 · 396 阅读 · 0 评论 -
整数的二进制表达式中有多少个1
* 无符号右移以为,检查右边的bit是否为1来统计, 要循环32次* 如果只有1个1的情况 n & (n-1) == 0* 平行算法 归并 <?php/** * Created by PhpStorm. * User: Mch * Date: 8/10/18 * Time: 23:27 * 整数的二进制表达中有多少个1 */class CountOne ...原创 2018-08-10 23:47:01 · 334 阅读 · 0 评论 -
javascript 数组 shuffle 洗牌 打乱顺序 shell sort
* php shuffle 打乱数组顺序Array.prototype.shuffle = function () { "use strict"; var a = [], b = [], n = this.length, i, j, seq; // @b: a[i] element exists? for (i = 0; i < n; i++) { ...原创 2018-08-04 18:28:00 · 932 阅读 · 0 评论 -
最长公共子序列
* 动态规划<?php/** * Created by PhpStorm. * User: Mch * Date: 8/10/18 * Time: 00:16 */class Solution { /** * 给定2个字符串$str1, $str2, 返回2个字符串的最长公共子序列 * $str1 = "1A2C3D4B56", $str2 =...原创 2018-08-10 00:35:00 · 323 阅读 · 0 评论 -
最少硬币找零问题 找零钱 动态规划 MinCoinChange
* 动态规划要注意动态规划和分而治之(归并排序和快速排序算法中用到的那种)是不 同的方法。分而治之方法是把问题分解成相互独立的子问题,然后组合它们的答 案,而动态规划则是将问题分解成相互依赖的子问题。用动态规划解决问题时,要遵循三个重要步骤:(1) 定义子问题;(2) 实现要反复执行而解决子问题的部分(这一步要参考前一节讨论的递归的步骤);(3) 识别并求解出边界条件。...原创 2018-08-10 00:12:47 · 1614 阅读 · 0 评论 -
fibonacci 利用矩阵乘法求解
Fibonacci.hpp假设一个整数是10,如何最快的求10的75次方1. 75 => Binary 1001 10112. 10^75 = 10^64 + 10^8 + 10^2 + 10^110^1 => 10^2 => 10^4 => ... => 10^32 => 10^64#pragma once#ifndef Fibona...原创 2018-08-01 00:59:48 · 660 阅读 · 1 评论 -
C++ 找零钱方法数
* 动态规划法#include "stdafx.h"#include <iostream>#include <vector>using std::vector;class Solution {public: static int coins(vector<int> deno, int v) { if (deno.size() == 0 ...原创 2018-08-01 09:34:00 · 3670 阅读 · 0 评论 -
常见的 题目 [TO BE DONE]
题目5:现在有三个容积分别是3升、5升和8升的水桶,其中容积为8升的水桶中装满了水,容积为3升和容积为5升的水桶是空的。三个水桶都没有体积刻度,现在需要将大水桶中的8升水等分成两份,每份都是4升水,(附加条件是只能使用另外两个空水桶)题目6:现在有两种砖,分别是1*1的砖和1*2的砖,用这两种砖铺 1*N 的地面。问共有多少种铺法?(输入为N,请输出相应的铺法数,经典铺砖问...原创 2018-08-21 09:52:12 · 473 阅读 · 0 评论 -
php 二分查找
假设数组已经排好顺序* binarysearch.php<?phpfunction binarysearch(array $a, $item, callable $c = null) { $low = 0; $high = count($a) - 1; if (null == $c) { $c = function($a, $b) { ...原创 2018-10-04 20:52:22 · 735 阅读 · 0 评论 -
PHP Comparator 比较大小的类
* Comparator.php<?php/** * Created by PhpStorm. * User: Mch * Date: 9/16/18 * Time: 5:07 PM */namespace algorithm\sort;class Comparator { /** @var callable */ protected $compa...原创 2018-09-16 17:33:26 · 435 阅读 · 0 评论 -
PHP 动态规划 找零钱方法数
* Coins.php<?php/** * Created by PhpStorm. * User: Mch * Date: 9/18/18 * Time: 10:38 PM */class Coins { /** * @param array $arr * @param int $aim * @return int */...原创 2018-09-18 23:20:18 · 1279 阅读 · 2 评论 -
php mergesort 归并排序
* 目录结构* 辅助测试的工具类 ArrayUtil.php<?phpnamespace algorithm\sort;class ArrayUtil { public static function shuffle(Array &$a) { $m = count($a); while ($m) { ...原创 2018-09-16 16:51:01 · 301 阅读 · 0 评论 -
javascript merge sort
* MergeSort.js/** * Created by Mch on 9/15/18. */function MergeSort() {}Array.prototype.mergeSort = function() { var length = this.length, a = new Array(length); if (length < 2) { ...原创 2018-09-15 18:39:29 · 353 阅读 · 0 评论 -
javascript 字符串 数字反转 字母大小写互换
// 符串abcd123ABCD456 怎么转换为 ABCD321abcd654// 数字要倒序 小写转大写, 大写转小写Array.prototype.reverse = function() { var tmp; for (var i = 0, j = this.length - 1; i < j; i++, j--) { tmp = th...原创 2018-07-19 11:40:00 · 1351 阅读 · 0 评论 -
greedy algorithm, insertion sort, quick sort
always makes the choice that seems to be the best at that moment. Example #1:@function: scheduling// You are given an array A of integers, where each element indicates the time// thing take...原创 2018-07-28 14:58:00 · 289 阅读 · 0 评论