题目1:正则表达式匹配 请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个模式.例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 思路:这道题很快就能想到递归,但是由于*的存在使得判别比较多,所以也感觉比较难,网上查了…
今天写一个用js正则校验最多保留两位小数的格式. a = /^\d+|\d+\.\d{1,2}$/; 测试 a.test(1.222); 结果:true 一下蒙了,怎么可能,最后找了好久,原来需要把^和$中间的格式包起来 a = /^(\d+|\d+\.\d{1,2})$/; 测试a.test(1.222); 结果:false 分析:如果不用括号包起来,则匹配^\d+或\d+\.\d{1,2} 1.222一下就匹配了^\d,因为只要以数字开头就匹配嘛 最终从网上找到一个更好的匹配两位小数的正则:…
要求 给定一个链表,对于每两个相邻的节点,交换其位置 示例 1->2->3->4->NULL 2->1->4->3->NULL 实现 1 struct ListNode { 2 int val; 3 ListNode *next; 4 ListNode(int x) : val(x), next(NULL) {} 5 }; 6 7 class Solution { 8 public: 9 ListNode* swapPairs(ListNode* head)…
java提供的自动垃圾收集机制大大提高了程序员的开发效率. 但是自动垃圾收集不是万能的,明确jvm的内存结构,工作机制是设计高扩展应用的基础. 也是诊断jvm运行时问题的必备技能. 我是李福春,我在准备面试,今天的题目是: jvm的内存结构是怎样的?哪些区域容易发生OOM? 答:分3部分回答,具体如上图所示: 1,线程私有的:分为虚拟机栈,本地方法栈,程序计数器: 2,线程共享的:分为堆,方法区(元数据,常量池) 3,jvm之外的:分为直接内存和 code cache ; 然后为每个部分分别展开…
1.问题描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 算法应该具有线性时间复杂度并且不使用额外空间. 输入: [4,1,2,1,2] 输出: 4 2.解题思路 这道题的主要的难点是具有线性时间复杂度并且不能使用额外的空间,因此就排除了很多的方法. 当时使用双指针尝试了以下,但是并没有取得成功,因为最后的结果可能是错误的. 3.正确解题思路 使用“按位异或”,即Java中的‘^’运算符来进行计算. 由于异或的原则是,不同为1,相同为0…
期望得分:100+100+100=300 实际得分:100+100+70=270 T1位运算1(bit) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK拥有一个十进制的数N.它赋予了N一个新的意义:将N每一位都拆开来后再加起来就是N所拥有的价值.例如数字123拥有6的价值,数字999拥有27的价值. 假设数字N的价值是K,LYK想找到一个价值是K-1的数字,当然这个答案实在太多了,LYK想使得这个价值为K-1的数字尽可能大. 输入格式(bit.in…
LeetCode 热题 HOT 100(05,正则表达式匹配) 不够优秀,发量尚多,千锤百炼,方可成佛. 算法的重要性不言而喻,无论你是研究者,还是最近比较火热的IT 打工人,都理应需要一定的算法能力,这也是面试的必备环节,算法功底的展示往往能让面试官眼前一亮,这也是在大多数竞争者中脱颖而出的重要影响因素. 然而往往大多数人比较注重自身的实操能力,着重于对功能的实现,却忽视了对算法能力的提高.有的时候采用不同的算法来解决同一个问题,运行效率相差还是挺大的,毕竟我们最终还是需要站在客户的角度思考问…
题目描述 给定平面 \(\text{xoy}\) 上 \(n\) 个开线段组成的集合 \(\text{I}\) ,和一个正整数 \(k\) ,试设计一个算法. 从开线段集合 \(\text{I}\) 中选取出开线段集合 \(\text{S}\in \text{I}\) , 使得在x轴上的任何一点 \(\text{p}\) , \(\text{S}\) 中与直线 \(\text{x}=\text{p}\) 相交的开线段个数不超过 \(\text{k}\) , 且 \(\sum_{\text{z}…
leecode刷题(24)-- 翻转二叉树 翻转二叉树 翻转一棵二叉树. 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 备注: 这个问题是受到 Max Howell的 原问题 启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了. 思路 二叉树问题,我们首先要想到的使用递归的方式来解决,有了这个思路,处理这道问题就很简单了:先互换根节…
1.面试题43. 1-n整数中1出现的次数 输入一个整数 n ,求1-n这n个整数的十进制表示中1出现的次数. 例如,输入12,1-12这些整数中包含1 的数字有1.10.11和12,1一共出现了5次. 这个题目的核心思想是考虑:每个位是任意数字时,可以包含多少个这个位为1的数字 分了三种情况 class Solution { public int countDigitOne(int n) { //digit表示位因子,就是10.100.1000... long digit=1; int cou…
Valid Palindrome吐槽一下Leetcode上各种不定义标准的输入输出(只是面试时起码能够问一下输入输出格式...),此篇文章不是详细的题解,是自己刷LeetCode的一个笔记吧,尽管没有代码,可是略微难一点的都会标出主要思路,便于以后复习 PS:题目中有"水题"两字的都是一遍AC,没有标注的都说明了问题,顺序依照Leetcode上时间倒序排列,少量题目因为和之前的题目有相关性,因此将其放在一起,比方12题和13题,因此中间可能会"缺少"几道题目,缺少的…
声明:本文以学习为目的,请不要影响他人正常判题 HDU刷题神器,早已被前辈们做出来了,不过没有见过用python写的.大一的时候见识了学长写这个,当时还是一脸懵逼,只知道这玩意儿好屌-.时隔一年,决定自己实现这个功能. 96名,没有再继续刷(,,,已经被管理员发现啦) 首先对辛苦刷题的acmer和hdu的管理员道歉,各位,抱歉. 介绍整体思路: 整体用多线程:线程执行从爬代码到提交的全部过程 分层次:对搜索引擎搜索的结果,进行划分,分层爬取 局部思路: 爬取搜索引擎得到的与题目相关的url,得到…
Preface 菜鸡HL终于狗来了他的省选停课,这次的时间很长,暂定停到一试结束,不过有机会二试的话还是可以搞到4月了 这段时间的学习就变得量大而且杂了,一般以刷薄弱的知识点和补一些新的奇怪技巧为主. 偶尔也会打一些比赛找找手感(比如HHHOJ的比赛,Luogu比赛,以及comet OJ上之前的CCPC题) CF和CC看情况,主要是我真的不太喜欢读英文题的恐怖感觉233 希望这段时间的努力可以让我不跪省选吧 2-26 早上晨跑完了就和杨浩讲了停课的事,不出意外地很轻松就通过了. 然后回班拿了点东…
最新更新时间 11:22:29 8. String to Integer (atoi) public static int myAtoi(String str) { // 1字符串非空判断 ""||" " if (str.isEmpty() || str.trim().isEmpty()) { return 0; } int index = 0; int sign = 1; int total = 0; //1检测第一个非空字符串是什么 while (str.cha…
Python 刷题笔记 本文记录了我在使用python刷题的时候遇到的知识点. 目录 Python 刷题笔记 选择.填空题 基本输入输出 sys.stdin 与input 运行脚本时传入参数 Python语言基础 序列 列表 元组 字典 集合 选择与循环 字符串与正则表达式 字符串 正则 函数 面向对象 文件 异常 未分类 常见数学 性能评估 numpy random 选择.填空题 Python3 中,布尔型只有 True 和 False 两个值,但它们的值本质上是 1 和 0,因此它们可以和数…
面试题3 -- 搜索二维矩阵 写出一个高效的算法来搜索 m × n矩阵中的值. 这个矩阵具有以下特性: 1. 每行中的整数从左到右是排序的. 2. 每行的第一个数大于上一行的最后一个整数. public class Solution { /** * @param matrix, a list of lists of integers * @param target, an integer * @return a boolean, indicate whether matrix contains…
转载自:http://blog.csdn.net/lnho2015/article/details/50962989 以下是我个人做题过程中的一些体会: 1. LeetCode的题库越来越大,截止到目前,已经有321个问题了.对于大多数人来说,没有时间也没有必要把所有题目都做一遍(时间充裕可以随意).刷个100题左右应该就差不多了(可以考虑序号为前100多的题目,相对更经典一点). 2. 从AC率高的开始做,难度从简单->中等,先不要做困难的. 3. 可以按照下文的面试出题频率顺序来做,从频率最…
Preface 老叶说了高中停课但是初中不停的消息后我就为争取民主献出一份力量 其实就是和老师申请了下让我们HW的三个人听课结果真停了 那么还是珍惜这次机会好好提升下自己吧不然就\(AFO\)了 List Luogu P4198 楼房重建 把高度化为斜率,然后就是个动态最长上升子序列的问题了,线段树上二分即可解决,而且可以做到\(O(n\log n)\) NOIP模拟赛10.24 实力翻车,T1主席树裸题切了,T2想了贪心+前缀和+二分正解,最后1min写完发现忘记判边界了炸到60,T3以为很难…
376. Wiggle Subsequence               自己没想出来,看了别人的分析. 主要是要分析出升序降序只跟临近的2个决定.虽然直觉上不是这样. 455. 分发饼干                           非常重要的一个题目,主要是要通过这个题目来彻底理解for 循环里面动态变化时候会发生的bug问题.问题本身是trivaial的. class Solution: def findContentChildren(self, g, s): ""&qu…
由于之前对算法题接触不多,因此暂时只做easy和medium难度的题. 看完了<算法(第四版)>后重新开始刷LeetCode了,这次决定按topic来刷题,有一个大致的方向.有些题不止包含在一个topic中,就以我自己做的先后顺序为准了. Array ---11.Container With Most Water 给定许多条与y轴平行的直线,求其中两条直线与x轴围成的容器的最大容量. 这道题用到了双指针的思想.我们在数轴的两端分别放置一个left指针和right指针,因为容器容量=较短边*两边…
补坑加1,这几天快速刷一下sqllabs 来巩固下sql注入基础吧,也算是把很久以前没刷的过一遍,do it! 第一部分: LESS1: 直接报错,有回显的注入, http://localhost/sqli-labs-master/Less-1/?id=1' order by 3--+ 就可以确定字段然后使用union查询即可 http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,2,3--+ 接下来就是常规的查库: ht…
目录 刷题记录:[XNUCA2019Qualifier]EasyPHP 解法一 1.error_log结合log_errors自定义错误日志 2.include_path设置包含路径 3.php_value zend.multibyte 1结合php_value zend.script_encoding "UTF-7"绕过尖括号<过滤 4.# \ 绕过.htaccess中多余字符 解法二 5..htaccess配置prce绕过正则匹配 解法三 刷题记录:[XNUCA2019Qua…
目录 刷题记录:[De1ctf] shell shell shell 一.知识点 1.源码泄露 2.正则表达式不完善导致sql注入 3.soapclient反序列化->ssrf 4.扫描内网 5.$file[count($file) - 1]和$ext = end($file)获取后缀名方式不同 6.绕过unlink 刷题记录:[De1ctf] shell shell shell 题目复现链接:https://buuoj.cn/challenges 参考链接:De1ctf - shell she…
深度优先搜索篇 # 题名 刷题 通过率 难度 98 验证二叉搜索树   22.2% 中等 99 恢复二叉搜索树   45.1% 困难 100 相同的树   48.1% 简单 101 对称二叉树   42.1% 简单 104 二叉树的最大深度   64.9% 简单 105 从前序与中序遍历序列构造二叉树   52.7% 中等 106 从中序与后序遍历序列构造二叉树   53.3% 中等 108 将有序数组转换为二叉搜索树   58.2% 简单 109 有序链表转换二叉搜索树   57.6% 中等…
排序篇 # 题名 刷题 通过率 难度 56 合并区间   31.2% 中等 57 插入区间   30.4% 困难 75 颜色分类   48.6% 中等 147 对链表进行插入排序   50.7% 中等 148 排序链表   52.7% 中等 164 最大间距   43.0% 困难 179 最大数   26.7% 中等 242 有效的字母异位词 C#LeetCode刷题之#242-有效的字母异位词(Valid Anagram) 47.2% 简单 274 H指数   28.5% 中等 324 摆动排…
贪心算法篇 # 题名 刷题 通过率 难度 44 通配符匹配   17.8% 困难 45 跳跃游戏 II   25.5% 困难 55 跳跃游戏   30.6% 中等 122 买卖股票的最佳时机 II C#LeetCode刷题之#122-买卖股票的最佳时机 II(Best Time to Buy and Sell Stock II) 48.8% 简单 134 加油站   40.0% 中等 135 分发糖果   33.0% 困难 316 去除重复字母   21.6% 困难 321 拼接最大数   20…
动态规划篇 # 题名 刷题 通过率 难度 5 最长回文子串   22.4% 中等 10 正则表达式匹配   18.8% 困难 32 最长有效括号   23.3% 困难 44 通配符匹配   17.7% 困难 53 最大子序和 C#LeetCode刷题之#53-最大子序和(Maximum Subarray)-该题包含分治讨论 38.4% 简单 62 不同路径   49.5% 中等 63 不同路径 II   29.4% 中等 64 最小路径和   55.0% 中等 70 爬楼梯   40.8% 简单…
字符串篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串   24.6% 中等 5 最长回文子串   22.4% 中等 6 Z字形变换   35.8% 中等 8 字符串转整数 (atoi)   15.3% 中等 10 正则表达式匹配   18.4% 困难 12 整数转罗马数字   53.8% 中等 13 罗马数字转整数 C#LeetCode刷题之#13-罗马数字转整数(Roman to Integer) 53.7% 简单 14 最长公共前缀 C#LeetCode刷题之#14-最长公共前缀…
双指针篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串   24.5% 中等 11 盛最多水的容器   43.5% 中等 15 三数之和   16.1% 中等 16 最接近的三数之和   34.6% 中等 18 四数之和   29.8% 中等 19 删除链表的倒数第N个节点   29.6% 中等 26 删除排序数组中的重复项 C#LeetCode刷题之#26-删除排序数组中的重复项(Remove Duplicates from Sorted Array) 39.8% 简单 27 移除元…
数组篇 # 题名 刷题 通过率 难度 1 两数之和 C#LeetCode刷题之#1-两数之和(Two Sum) 43.1% 简单 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组的中位数(Median of Two Sorted Arrays)-该题未达最优解 30.1% 困难 11 盛最多水的容器 C#LeetCode刷题之#11-盛最多水的容器(Container With Most Water) 37.9% 中等 15 三数之和 C#LeetCode刷题之#15-三数…