昨晚刚刚写的几道算法题,难度也还行,就是全部AC有些困难,当时第一题AC.第二题AC 60%,第四题AC 40%,第五题没有时间写完了,这个应该全部AC了:其中第三题没有写出来 1,是否存在符合规范的有效号码 某个国家的电话号码规范为:①以8开头:②长度为11位 现在给出任意长度的一串数字,判断是否可以通过从头部或者尾部连续删除获得一串符合规范的电话号码? 下面的代码是我第一次就写好的.后期没有优化的,感觉也没什么可以优化的空间了[使用subString还可以在缩小搜索范围],这个题目一次通过…
这个是LeetCode上面的编程训练专项页面,地址:https://leetcode-cn.com/explore/interview/card/top-interview-quesitons-in-2018/262/summery/ 总体,比较系统.全面.在解决这些问题的时候,我都是先尝试使用自己的方法coding一遍,之后在看看其他比较巧妙的解决方法学习一下. 需要特殊技巧解决的难题:①切割回文:② 0,热身编程题 0.1只出现一次的数字[算法简单.但是想要达到优雅就需要动一动脑子] 给定一…
用php写算法切割数组,不用array_chunk();算法例如以下所看到的. <?php //$array 数组 //$size 每一个数组的个数 //每一个数组元素是否默认键值 function array_chunk_list($array, $size, $preserve_keys = false) { reset($array); $i = 0; foreach ($array as $key => $value) { // 是否存在这个值 if (! isset($newarra…
模板—算法—整体二分(区间k小值) Code: #include <cstdio> #include <algorithm> using namespace std; #define N 200010 int num[N],number[N],tmp[N],ans[N],n,m,id[N]; struct Ask {int l,r,id,k;}ask[N],ask1[N],ask2[N]; void change(int x,int y) {while(x<=n) tmp[x…
md5是哈希算法的改进加强,因为不同原始值可能hash结果一样,但md5则改善了用于验证消息完整性,不同md5值原始值也必将不一样…
1.基本思想 基数排序是通过“分配”和“收集”过程来实现排序 2.实现原理 基数排序(以整形为例),将整形10进制按每位拆分,然后从低位到高位依次比较各个位.主要分为两个过程: (1)分配,先从个位开始,根据位值(0-9)分别放到0~9号桶中(比如53,个位为3,则放入3号桶中) (2)收集,再将放置在0~9号桶中的数据按顺序放到数组中 重复(1)(2)过程,从个位到最高位(比如32位无符号整形最大数4294967296,最高位10位) 3.代码实例 (1)代码:       //pos=1表示…
这篇我们说说堆这种数据结构,其实到这里就暂时把java的数据结构告一段落,感觉说的也差不多了,各种常见的数据结构都说到了,其实还有一种数据结构是“图”,然而暂时对图没啥兴趣,等有兴趣的再说:还有排序算法,emmm....有时间再看看吧! 其实从写数据结构开始到现在让我最大的感触就是:新手刚开始还是不要看数据结构为好,太无聊太枯燥了,很容易让人放弃:可以等用的各种框架用得差不多了之后,再回头静下心来搞搞数据结构还是挺有趣的:废话不多说,开始今天的内容: 1.二叉树分类 树分为二叉树和多叉树,其实吧…
问题1描述:[贪婪算法,Dijistra算法] ①有一只兔子要从一个N*N的二维矩阵方格中从上跳到下面: ②每次只能向左或向下,越过一个方格,跳到下一个方格中: ③被越过的方格中的数值,表示该兔子越过该方格后需要休息的时间(或者能量); 求:到达最下面方格花费的最少时间是多少? 输入: 第一行,输入一个数值N 后面输入N行,每行有N个数值并且由[,]隔开 输出: 输出一个数据M,M为兔子需要花费的最小时间 示例: 输入: 6 1,2,3,5,7,6 2,1,4,5,7,4 3,4,5,6,3,6…
集合: 联合.交叉.差异.子集 using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 数据结构和算法 { public partial class SCet { static void Main() { SCet setA = new SCet();…
★ 引子 上一篇文章讲了 Comba 乘法的原理,这次来讲讲如何实现.为了方便移植和充分发挥不同平台下的性能,暂时用了三种不同的实现方式: 1.单双精度变量都有的情况. 2.只有单精度变量的情况. 3.可以使用内联汇编的情况. 前面已经介绍了 Comba 乘法的原理和实现思路,为了方便,再把它贴到这里: 计算 c = a * b,c0,c1,c2 为单精度变量. 1. 增加 c 到所需要的精度,并且令 c = 0,c->used = a->used + b->used. 2. 令 c2…