柯里化currying + 隐式调用 = 一个有名的add面试题
柯里化 =================================== 维基百科解释: 柯里化,英语:Currying(果然是满满的英译中的既视感),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。 总结: 1、多参数函数减少参数数量 2、返回函数 点评:柯里化就是一种对闭包的应用 优势: 1、参数复用(or减少参数数量): 创造闭包环境,在顶层作用域链缓存参数,既不会造成环境污染,又能创造最大范
锁和synchronized
锁的常见概念 互斥: 同一时刻只有一个线程执行 临界区:一段需要互斥执行的代码 细粒度锁: 用不同的锁对受保护资源进行精细化管理。 细粒度锁可以提高并行度,是性能优化的一个重要手段 死锁 :一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象 。 用锁的最佳实践 永远只再更新对象的成员变量时加锁。 永远只在访问可变的成员变量时加锁。 永远不再调用其它对象的方法时加锁。 减少所得持有时间,减小锁的粒度。 同步与异步 调用方法如果需要等待结果,就是同步;如果不需要等待结果就是异步。 同步是Ja
题解 P1982 【小朋友的数字】
题目链接 Solution [NOIP普及组2013] 小朋友的数字 题目大意:求\(max\{f[i]\}\),其中\(f[i]= max\{f[j]+ d[j] \;| \;j < i\}\)d[j]$表示区间[1,j]内的最大连续子段和 分析:看了题目题目大意,这题显然还是挺水的吧. 我们先看状态\(d\)怎么求: 我们设\(td[i]\)表示以\(i\)结尾的最大连续子段和,那么显然 \(td[i] = max(td[i - 1] + val[i],val[i])\),\(val[i]
学生管理系统。JAVA
1 package 作业;
2
3 import java.io.IOException;
4 import java.util.Scanner;
5
6 public class zuoye {
7
8 public static void main(String[]args) {
9 Scoreinformation []stu;
10 stu=new Scoreinformation [5];
11
12 stu[0]=
kafka connect 使用
connect地址 https://www.confluent.io/hub 安装启动 https://docs.confluent.io/current/connect/userguide.html#connect-userguide-distributed-config https://docs.confluent.io/current/connect/managing/install.html#install-connectors REST操作connect 参考:https://doc
题解 CF327E 【Axis Walking】
题目链接 Solution [CF327E] Axis Walking 题目大意:给定一个数列,求有多少种排列方式使得这个数列的任意前缀和不会成为\(k\)个数中的任意一个 分析:看到数据范围\(n \leq 24\)就马上可以意识到这题要么是状压\(dp\),要么是搜索.可是搜索全排列复杂度高达\(24!\),而且如果出题人卡你(请意识到这是\(CF\)的题目),你的剪枝是没有任何软用的. 比如这组数据: 24
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[NOI2011]兔兔与蛋蛋游戏
传送门 直接博弈论dfs可以得到75分(然鹅我博弈论学的很pie) #include<bits/stdc++.h>
#define LL long long
#define INF 10000
using namespace std;
int read()
{
int x=0,f=1;char s=getchar();
while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
while(s>='0'&&s<='9
谈谈 Golang, 以及我走的一些弯路
在某乎上看到了这个问题, 还是挺有意思的. 撕哪个语言最好, 几乎是工程师当中最好的引战题目了. 今天我只想谈谈我是怎么看待 Go 的, 以及我走的一些弯路. 我是 2010 年在学校的时候了解到 Go 语言的. 当时的 Go 语言还是一塌糊涂, STW GC
codeblocks显示:不支持的16位应用程序 解决办法
我是win10 64位系统,写c++运行就会显示不兼容16位应用程序。以前编出来的exe还能用,今天编出的就炸了。 试了网上找的各种解决方案,360修复,注册表,下了新的CB17试了也不行。都没用。 试了用vs编译。vs能用。 后来实在没办法, 想自己用g++编。 找到mingw32-g++.exe。编不了,报错。 然后我再去CB17试了下,成了!我也不明白其中道理! 但是,用旧的,还是不行! 原来是还是用旧的exe,重构建一下就成了。
题解 UVA11488 【Hyper Prefix Sets】
题目链接 首先,我们由输入数据多个字符串,以及求公共前缀,很容易想到这道题是\(Trie\)的应用 我们把\(Trie\)树建好,然后在上面跑一个树形\(dp\)即可。 即以\(dp(u,dis)\)表示以\(u\)为根的子树,\(u\)深度为\(dis\)时的答案 由题目定义很容易想到,\(dp(u,dis) = max\{dis * tot[u],dp(v,dis + 1)\}\) \(tot[u]\)为以\(u\)为根的子树的叶子节点个数(即以根节点到\(u\)这段作为公共前缀,具有这段
Day 06 for循环/数字类型、字符串、列表常用内置函数
流程控制之for循环 name = ['Tiny', 'Tom', 'Jane', 'Jack']
for i in name:
print(i) Tiny Tom Jane Jack for + break break立即终止for循环 for + continue continue跳出本次循环,不执行下面的代码,直接进入下一次循环 数字类型内置方法 算术运算 + 逻辑运算 没有有序或无序一说 是不可变类型 字符串内置方法 索引取值 索引切片 for循环 成员运算 strip() #
20194619 + 自动生成四则运算题第一版报告
软件基本功能如下 自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内 剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式 题目数量可定制 相关参数可控制 是否包含乘法和除法 操作数数值范围可控(如操作数 在100以内 还是1000以内) 操作数是否含负数 生成的运算题存储到外部文件result.txt中 一、需求分析 1.对产品功能的需求: 自动生成10道2个操作数的四则运算算
vue开发中遇到的问题
1.实现数据交互的问题,想套用之前angular项目的resource的模块。 后台交互从vue-resource改成axios https://github.com/pagekit/vue-resource https://github.com/axios/axios 2.axios 怎么引入vue 用继承的方式 https://zhidao.baidu.com/question/1695426870653534748.html 3.Vue.js中的图片引用路径的方式 http://www.
JSONArray排序和倒转
JSONArray排序 // JSONArray转list
List<JSONObject> list = JSONArray.parseArray(ordersDataArray.toJSONString(), JSONObject.class);
Collections.sort(list, new Comparator<JSONObject>() {
@Override
public int compare(JSONObject o1, JSONObj
java里的数组和list分别在什么情况下使用?
数组长度固定,List未限定长度,且支持的功能更多,最常用的ArrayList底层实际上也是使用数组实现。 不需要复杂功能和确定长度的情况下,使用数组效率更高,通常情况建议使用List。
题解 P2294 【[HNOI2005]狡猾的商人】
题目链接 Solution [HNOI2005]狡猾的商人 题目大意:给定m个约束条件,每个约束条件表示\(\sum_{s}^{t} = v\),判断图是否有解 我们现在来分析一下题目: \(\sum_{s}^{t} = v\),这个式子不好办,让我们非常难受。那么我们有没有办法将这个复杂的和式变换成其它的形式呢? 答案是肯定的。对于这种和式,我们可以考虑采用前缀和的方式来将它变换成其它形式 设\(sum(i) = \sum_0^ia_i\) (\(a_i\)是题目中给定的盈亏值) 那么那个
今日推荐
周排行