最近重新学习数据结构与算法以及刷leetcode算法题时,发现不少jdk自带的方法可以提升刷题的效率.这些小技巧不仅仅对刷算法题带来便利,对我们平时开发也是很有帮助的.本文以java语言为基础,记录了目前已经使用或看到过的一些小技巧,后续在刷题过程中,还会持续更新. 一.数组 1.使用Arrays.sort(int[] a)进行排序 底层采用的是快速排序算法实现的:时间复杂度为O(nlogn),空间复杂度O(logn),不稳定.默认是从小到大排序. int[] arr = new int[]{2…
刚过了个五一,在杭州到处看房子,不知道杭州最近怎么了,杭州买房的人这么多,房价涨得太厉害,这几年翻倍翻倍地涨,刚过G20,又要亚运会,让我这样的刚需用户买不起,也买不到房子,搞得人心惶惶,太恐怖了,心好累. 这几天,因为这件事情感觉人都是懵的,无法静心学习复杂的东西,所以就看看一些基础,学习学习NopCommerce的CommonHelper都写了些啥,看看别人的代码巧在哪里,妙在哪里. NopCommerce是啥? nopCommerce是最好的开源电子商务购物 系统.nopCommerce免…
一.使用Q对象进行限制条件之间 "或" 连接查询 from django.db.models import Q from django.contrib.auth.models import User Obj = User.objects.filter(Q(name="Bob") | Q(age=28)) # 在用户表中查询name为 Bob 或者 age 为28的对象 二.使用 startwith 和 endswith 进行字段数据起始字符和结尾字符的条件查询 ob…
场景:在mid加载子窗体的时候如果指定WindowState为Maximized,加载完成后主窗体会显示最大化.最小化.关闭的按钮图标. 解决方法: 1.更改主窗体FormMain的属性.制定MainMenuStrip的属性为menuStrip1控件.menuStrip1控件就是主窗体上的菜单栏. 2.在menuStrip1控件的ItemAdded事件中添加一下代码: private void menuStrip1_ItemAdded(object sender, ToolStripItemEv…
1.选择target(就是左边你的工程target)-->BuildSettings-->search Paths下的User Header Search Paths 2.添加“$(PODS_ROOT)”(没有引号),选择:recursive, 这样设置完之后,再在工程中导入第三方类库就有提示了.…
1.使用Win+R打开cmd窗口 2.输入osk回车就出现了一个虚拟的小键盘啦,当你的键盘坏掉后非常实用哦…
1.转载自一个 https://www.cpe.ku.ac.th/~jim/java-io.html 2.工具代码 class Reader { static BufferedReader reader; static StringTokenizer tokenizer; /** call thReader method to initialize reader for InputStream */ static void init(InputStream input) { reader = n…
虽然很多人都觉得前端算法弱,但其实 JavaScript 也可以刷题啊!最近两个月断断续续刷完了 leetcode 前 200 的 middle + hard ,总结了一些刷题常用的模板代码.走过路过发现 bug 请指出,拯救一个辣鸡(但很帅)的少年就靠您啦! 常用函数 包括打印函数和一些数学函数. const _max = Math.max.bind(Math); const _min = Math.min.bind(Math); const _pow = Math.pow.bind(Math…
算法复杂度及渐进符号 一.算法复杂度 首先每个程序运行过程中,都要占用一定的计算机资源,比如内存,磁盘等,这些是空间,计算过程中需要判断,循环执行某些逻辑,周而反复,这些是时间. 那么一个算法有多好,多快,怎么衡量一个算法的好坏?所以,计算机科学在算法分析过程中,提出了算法复杂度理论,这套理论可以量化算法的效率,以此作为标准,方便我们能衡量到底选择哪一种算法. 复杂度有两个维度:时间和空间. 我们说,一个实现了某算法的程序: 如果计算的速度越快,那么这个算法时间复杂度越低. 如果占用的计算资源越…
算法复杂度主方法 有时候,我们要评估一个算法的复杂度,但是算法被分散为几个递归的子问题,这样评估起来很难,有一个数学公式可以很快地评估出来. 一.复杂度主方法 主方法,也可以叫主定理.对于那些用分治法,有递推关系式的算法,可以很快求出其复杂度. 定义如下: 如果对证明感兴趣的可以翻阅书籍:<算法导论>.如果觉得太难思考,可以跳过该节. 由于主定理的公式十分复杂,所以这里有一种比较简化的版本来计算: 二.举例 二分搜索,每次问题规模减半,只查一个数,递推过程之外的查找复杂度为O(1),递推运算时…