本来说的优惠码是 NNKL,结果中午就被人发现 NNK 优惠码实际可用并且可以下单,结果到促销时间NNKL代码压根没法使用。这样也就算了,而后嫌弃卖的太便宜以库存不足为理由退款了大部分的订单,而且退款的顺序竟然是先下单的先退款。最后搞半天到晚上11点拖着一直没付款的用户付款了,结果反而是秒开通。这商家管理的混乱程度和随意程度也是我前所未见的,难怪明明是98年的老厂经营了20多年还是个默默无闻的商家。
随记
今天花了好久慢慢看完墨茶的所有动态以及聊天记录截图,越看越破防。一个身负重病仍然坚强乐观的少年,一位马克思主义同志,一个虽然穷苦潦倒被病痛折磨但仍然努力挣扎的少年,一个每日靠泡面过活连1块8的止痛片都舍不得买却舍得用仅有的钱救助流浪猫的少年,在春节的前一个月独自一人在破旧的出租屋离开了。除了他在网上结识的朋友,没有人在乎他,没有人关心他,更没有人帮助他,甚至他的死亡也是房东在多天后才发觉的。
“四川在线”对他的家人进行了采访,他的家庭并没有他描述的那样贫穷,不如说正相反,他的家庭在大凉山这个贫困地区甚至算的上富有。不知为何,在这篇采访中似乎特别地描述了他家”并不贫穷” : “75岁的老人每月有政府定时发放的优抚金和农村养老保险金等固定收入。单家独户的小院,一栋两层楼房,有一个客厅五间卧室,院内东西厢房有猪圈、鸡棚、厨房、厕所、太阳能热水器洗澡间等,屋内有电视机、冰箱、冰柜、洗衣机、电饭煲等电器。猪圈内有一头已经怀上猪崽的母猪,鸡棚内喂有七八只鸡,后院菜地种植的青菜、白菜等蔬菜长势良好。” ““墨茶official”的母亲告诉四川在线记者:其家境还算不错,自己有一辆2014年购买的东风悦达起亚牌轿车,又在西昌市区与人合伙开了一家足浴店,其于2016年1月和2019年5月分别在西昌市购买了18.53平方的商业用房和43.11平方的办公用房” ,甚至能精确到小数点后两位,又极力将他渲染为一个”网瘾少年” 其母亲陈某某介绍,“墨茶official”因家庭离异的原因,性格较为孤僻,不爱说话,最大喜好就是网络,职高肄业后,长期辗转于西昌、会理、成都等地,要求其母给予生活费,其母因要求其自食其力导致母子关系较紧张。 而且这篇文章与墨茶动态和聊天透露的情况有着极大的出入,2020年,“墨茶official”在西昌检查出鼻肿瘤,后由其父带至攀枝花医院手术,并支付了手术费,期间发现其患糖尿病、高血压等病症。手术后,“墨茶official”因与父亲不和,独自外出,不接父母电话,直至被发现已在会理县迎宾大道出租屋内去世。根据自助墨茶群友晒出来的账单,确实是他们一起资助了他的看病钱,在出院后仍然欠着医院2000多元连吃一块八的止疼片都会肉痛,在患病后他也是一直打工一边直播攒钱,天天吃的也只有泡面,直到他因为糖尿病的并发症离开人世。
我多希望他如那些杂种所说的,只是一个孤僻的”网瘾少年”,只是一个该死的骗子啊,那样我们就不会这么心痛和愤怒了。
Novos.be 比利时VPS性能测试
这家是个新商家 可能是oneman 不过老板人挺好的 难得的比利时商家 还可以解锁奈飞 希望能做大做好吧
付款方式有 银行卡 Paypal 支付宝
博主上车了他家前几天限量套餐 这个配置价格太超值了 用来挂PT速度还可以 有个小缺点就是流量统计不太准 会多算一点
- 2个AMD Ryzen 3900XT vCPU(专用/主机直通)
- 4096 MB内存
- 80 GB联网(40 GBps infiniband)NVMe SSD操作系统磁盘空间
- 2 TB联网SATA存储(作为RAW磁盘添加到您的VPS)。
- 25 TB每月流量@ 1 GBps易爆端口
- 1个IPv4和1个/ 64 IPv6(带票的更多内容)
- 免费1x快照。
- 免费的50 GB备份空间。
- 免费的高可用性
- 免费的Colt IP保护DDoS保护。
- Proxmox / KVM虚拟化
- 比利时安特卫普
本来是19欧元/月,特价5.71欧元/月
LemonBench测试结果 https://paste.ubuntu.com/p/QpqNCPdkKy/
LemonBench Linux System Benchmark Utility Version 20201005 Intl BetaVersion Bench Start Time: 2021-01-16 23:01:32 Bench Finish Time: 2021-01-17 00:19:40 Test Mode: Full Mode -> System Information OS Release: Debian GNU/Linux "Buster" 10.7 (x86_64) CPU Model: AMD Ryzen 9 3900XT 12-Core Processor 3.79 GHz CPU Cache Size: 512 KB CPU Number: 2 vCPU Virt Type: KVM Memory Usage: 692.64 MB / 3.86 GB Swap Usage: [ No Swapfile / Swap partition ] Disk Usage: 1.41 GB / 82.41 GB Boot Device: /dev/sda1 Load (1/5/15min): 0.00 0.02 0.02 CPU Usage: 0.0% used, 0.0% iowait, 0.0% steal Kernel Version: 4.19.0-12-cloud-amd64 Network CC Method: bbr + fq -> Network Information IPV4 - IP Address: [BE] 194.124.41.* IPV4 - ASN Info: 42160 (LCPDCO - lcp nv, BE) IPV4 - Region: Belgium Flemish Region Oostkamp -> Media Unlock Test HBO Now: No Bahamut Anime: No Abema.TV: No Princess Connect Re:Dive Japan: Yes BBC: No Bilibili China Mainland Only: No Bilibili Hongkong/Macau/Taiwan: No Bilibili Taiwan Only: No -> CPU Performance Test (Standard Mode, 3-Pass @ 30sec) 1 Thread Test: 2104 Scores 2 Threads Test: 4184 Scores -> Memory Performance Test (Standard Mode, 3-Pass @ 30sec) 1 Thread - Read Test : 56721.42 MB/s 1 Thread - Write Test: 24975.40 MB/s -> Disk Speed Test (4K Block/1M Block, Direct-Write) Test Name Write Speed Read Speed 10MB-4K Block 3.3 MB/s (798 IOPS, 3.21 s) 10.9 MB/s (2664 IOPS, 0.96 s) 10MB-1M Block 151 MB/s (143 IOPS, 0.07 s) 181 MB/s (172 IOPS, 0.06 s) 100MB-4K Block 3.2 MB/s (783 IOPS, 32.68 s) 10.7 MB/s (2623 IOPS, 9.76 s) 100MB-1M Block 190 MB/s (181 IOPS, 0.55 s) 202 MB/s (192 IOPS, 0.52 s) 1GB-4K Block 3.4 MB/s (826 IOPS, 309.81 s) 11.6 MB/s (2835 IOPS, 90.27 s) 1GB-1M Block 228 MB/s (217 IOPS, 4.59 s) 212 MB/s (202 IOPS, 4.95 s) -> Speedtest.net Network Speed Test Node Name Upload Speed Download Speed Ping Latency Server Name Speedtest Default 107.54 MB/s 85.44 MB/s 4.11 ms Telenet BVBA/SPRL (Belgium Mechelen) China, Nanjing CU 28.26 MB/s 42.80 MB/s 170.26 ms China Unicom (China Nanjing) China, Shanghai CU 13.01 MB/s 71.30 MB/s 171.38 ms China Unicom 5G (China ShangHai) China, Hangzhou CT 0.11 MB/s 3.00 MB/s 210.17 ms China Telecom ZheJiang Branch (China Hangzhou) China, Nanjing CT 23.35 MB/s 54.68 MB/s 231.32 ms China Telecom JiangSu 5G (China Nanjing) China, Guangzhou CT 0.06 MB/s 14.57 MB/s 231.95 ms ChinaTelecom 5G (China Guangzhou) China, Wuhan CT Fail: Latency test failed for both TCP, and no HTTP URL available. China, Shenyang CM Fail: Latency test failed for both TCP, and no HTTP URL available. China, Hangzhou CM Fail: Latency test failed for both TCP, and no HTTP URL available. China, Nanning CM Fail: Cannot read: Resource temporarily unavailable China, Lanzhou CM Fail: Latency test failed for both TCP, and no HTTP URL available. Hong Kong, CSL 22.30 MB/s 17.98 MB/s 245.17 ms CSL (Hong Kong Kwai Chung) Hong Kong, PCCW 49.47 MB/s 65.89 MB/s 195.47 ms STC (China Hong Kong) Korea, South Korea 25.47 MB/s 12.73 MB/s 281.01 ms kdatacenter.com (South Korea Seoul) Japan, GLBB 41.90 MB/s 2.69 MB/s 238.49 ms Allied Telesis Capital Corporation (Japan Fussa-shi) Taiwan, FET 32.50 MB/s 96.06 MB/s 273.81 ms FarEasTone Telecom (Taiwan Keelung City) Taiwan, Chief 41.97 MB/s 55.74 MB/s 236.98 ms Chief Telecom (Taiwan Taoyuan) Taiwan, TWM 40.08 MB/s 101.66 MB/s 245.05 ms Taiwan Mobile (Taiwan Taoyuan) Singapore, Singtel 20.04 MB/s 47.42 MB/s 251.56 ms Singtel (Singapore Singapore) Singapore, M1 23.97 MB/s 39.93 MB/s 328.19 ms M1 Limited (Republic of Singapore Singapore) Singapore, NME 22.83 MB/s 27.01 MB/s 246.96 ms NewMedia Express (Republic of Singapore Singapore) USA, Century Link 63.19 MB/s 77.72 MB/s 151.82 ms CenturyLink (United States Seattle, WA)
Unixbench测试
性能有点爆炸 单核分数2732.1 双核分数3583.1
磁盘性能测试
磁盘都是网络挂载的 还可以
Netcup2020年12月闪购优惠
每日一款优惠 北京时间早上六点更新 通常会出现性价比极佳的优惠 可以注意以下
活动界面: https://www.netcup.de/adventskalender/
12.1 设置费2 € 月付0,16 € 的 .de后缀,netcup官方提供代注册服务 性价比较高 可惜de后缀无法国内备案
12.2 4核独享AMD EPYC™ 7702,20GB内存,640GB SSD空间,月付16欧,半年付,12个月合同期
12.3 虚拟主机4000 SE 500GB SSD空间 支持nodejs ruby 3.33€月付 12个月合同期
12.4 4核(应该是intel e5),10GB内存,240GB SSD空间,月付7.7欧,年付,12个月合同期 性价比可以
12.5 年付10€ .at后缀
12.6 1 GBit / s的vLAN 5.99€/月 组内网用的 可以在内网互联免流
12.7 2.79€ 他家的主题马克杯 这到国内的运费就够买10个了
12.8 虚拟主机2000 SE而不是3.89 €/月只需€2.22 一般般吧 他家就是配置越高性价比越高 低端货性价比一般
12.9 AMD EPYC™7702 48 GB DDR4 ECC RAM 30.30€/月 kvm 资源专用VPS
12.10 转销商级别B 9.99€/月 没啥鬼用 买了之后要签合同,成为转销商 拿域名和服务器有优惠
12.11 RS 4000 G9 SE AMD EPYC™7702 32 GB DDR4 ECC RAM 25€/月 性价比一般般吧
12.12 故障转移IPv6子网 3.99€/月 价格有点贵 就是个/64的ipv6
12.13 .eu后缀 0.42€/月 年付的话5€ 不过他家好像只提供.de的代注册服务 这个估计得要欧盟身份资料
12.14 转销商虚拟主机4000 9.99€/月 日常促销价
12.15 每月39.39€ RS 8000 G9 不是独立服务器 是资源专用的vps
处理器: | AMD EPYC™7702 |
---|---|
处理器核心: | 12个专用 |
RAM DDR 4 ECC: | 64 GB |
硬盘: | 2 TB固态硬盘 |
12.16 5.55€/月 虚拟主机 8000 SE ADV20 500G SSD空间 12个免费.de后缀
12.17 10.10€/月 性价比不错 他家专用的性能很不错
处理器: | AMD EPYC™7702 |
---|---|
处理器核心: | 2个专用 |
RAM DDR 4 ECC: | 12 GB |
硬盘: | 320 GB固态硬盘 |
12.18 转销商虚拟主机1000 2.49€/月
12.19.ch后缀 0.42€/月
12.20 2.5GBit / s的vLAN 9.99€/月 组内网用的 可以在内网互联免流
12.21 设置费2 € 月付0,16 € 的 .de后缀,netcup官方提供代注册服务 性价比较高 可惜de后缀无法国内备案
12.22 虚拟主机2000SE 2.22€/月 还行 他家虚拟主机节日的时候是越贵的折扣越高,一般低端款性价比就这样了
12.23 VPS 12.12€/月 半年付 U应该是intel的志强 性价比可以
处理器: | AMD EPYC™7702 |
---|---|
处理器核心: | 6个vCore,KVM技术 |
RAM DDR 4 ECC: | 18 GB RAM |
硬盘: | 480 GB |
12.24 虚拟主机1000 SE 0.97€/月 一般般 接下来圣诞应该有好东西
以上优惠只可以叠加新用户5€优惠卷 需要可以自取
36nc16061348969 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348968 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348967 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348966 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348965 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348964 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348963 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348962 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348961 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348960 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16006580653 优惠券5欧元(适用于新客户,无域名) 21.09.2020 无限有效性
36nc16006580652 优惠券5欧元(适用于新客户,无域名) 21.09.2020 无限有效性
36nc16006580651 优惠券5欧元(适用于新客户,无域名) 21.09.2020 无限有效性
36nc16006580650 优惠券5欧元(适用于新客户,无域名) 21.09.2020 无限有效性
Netcup2020黑色星期五预告
2020年11月26日星期四起的早鸟优惠
今年,我们将首次为现有客户提供服务,并在真正的黑色星期五之前独家提供早鸟促销。促销活动仅对2020年11月26日星期四下午6:00至2020年11月27日星期五上午6:59的现有客户有效。
- 下午6:00: .de域名每月0.16欧元,另加2欧元的安装费(数量不限的商品)
- 下午6时: .eu域名€5.00 /年(项目数量不限)
- 下午6:00: .ch网域€5.05 /年(项目数量不受限制)
- 下午6: 00 : .li网域€5.05 /年(项目数量不受限制)
- 下午6点::。at网域€10.00 /年(项目数量不受限制)
2020年11月27日黑色星期五上午7:00的特别优惠
定期促销适用于2020年11月27日(星期五)上午7:00至下午6:30(新促销活动的时间是有限的),仅在售完即止。
- 07:00-07:59 a.m。:.de域名€0.16 /月加€2设置费(不限数量的商品)
- 7:00-07:59 am: .at域名€10.00 /年(项目数量不受限制)
—
- 上午7:00 ::。 eu域名€5.00 /年(项目数量不受限制)
- 上午7:00: .ch域名€5.05 /年(项目数量不受限制)
- 上午7:00: .li网域€5.05 /年(项目数量不受限制)
- 上午07:00:虚拟主机1000 SE 50%折扣-而不是€1.94 /月仅€0.97 /月(最多100件)
- 上午07:00: Cloud vLAN 2.5 Gbit7s 50%折扣-而不是€19.99 /月仅€9.99 /月(最多1000件)
- 上午07:00: VPS 1000 G9-而不是€5.85 /月仅€4.44 /月(最多200件)
- 上午8:00: RS 2000 G9-而不是每月€15.60(每月最多€11.11)
- 上午8:00:虚拟主机4000 SE-而不是€7.79 /月仅€3.33 /月(最多333件)
- 9:00上午: VPS Black Surprise-仅€7.77 /月(最大777台)
- 上午09:00:转销商虚拟主机4000-而不是19.49€/月(仅9.99€/月)(最多99件)
- 上午10:00: VPS 500 G8-而不是€5.16 /月仅€3.99 /月(最多50件)
- 11:00 am: RS Black Special 1-仅€10.10 /月(最多200件)
- 上午11:00:虚拟主机2000 SE-而不是€3.89 /月仅€2.22 /月(最多200件)
- 下午12:00: RS Black Special 2-仅€16.16 /月(最多161件)
- 下午12:00:虚拟主机8000 SE-而不是€12.66 /月仅€5.55 /月(最多1000件)
- 下午1:00:经销商B级-而不是€18.52 /月仅€9.99 /月(最多100件)
- 下午1点: RS 8000 G9 SE-仅€39.39 /月(最多100件)
- 下午2:00: RS Black Special 3-仅30.30€/月(最多200件)
- 下午3时: Cloud vLAN Giga-而不是€12.66 /月仅€5.99 /月(最多400个单位)
- 下午4:00: RS 4000 G9 SE-仅€25.00 /月(最多200件)
- 下午5:00: VPS Black Wonder-每月仅12.12欧元(最多200件)
—
- 6:00-6:29 p.m .: VPS 200 G8-仅1.79€/月(最多50件)
促销活动的更改或增加将在我们的特价博客和Twitter上宣布。时间表会根据需要进行更新。
所有价格均以欧元为单位并包括增值税,“早鸟”仅适用于2020年11月26日(星期四)下午6:00至2020年11月27日(星期五)上午6:59之间的现有客户,售完即止。定期促销仅在2020年11月27日有效,并且售完即止。不排除错误。我们在线商店(www.netcup.de)上的价格适用。促销不能与优惠券一起使用。
以上优惠只可以配合新用户5o优惠卷 其他优惠卷不能用 以下是优惠码
36nc16061348969 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348968 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348967 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348966 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348965 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348964 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348963 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348962 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348961 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16061348960 优惠券5欧元(适用于新客户,无域名) 23.11.2020 无限有效性
36nc16006580653 优惠券5欧元(适用于新客户,无域名) 21.09.2020 无限有效性
36nc16006580652 优惠券5欧元(适用于新客户,无域名) 21.09.2020 无限有效性
36nc16006580651 优惠券5欧元(适用于新客户,无域名) 21.09.2020 无限有效性
36nc16006580650 优惠券5欧元(适用于新客户,无域名) 21.09.2020 无限有效性
最大子序和 最大连续子数组和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
初看有点懵逼,一直想有啥简单的解法,想半天只想到用暴力做orz
时间复杂度 O(n^3) 时间爆炸
class Solution { public int maxSubArray(int[] nums) { int max = -100; int sum = 0; if(nums.length == 1){ return nums[0]; } for(int i = 0;i < nums.length; i++){ for(int j = i ; j < nums.length; j++){ sum = 0; for(int k = i ; k <= j ; k++ ){ sum += nums[k]; if(sum > max){ max = sum; } } } } return max; } }
贪心法 相对于暴力简直快的飞起
贪心准则:遍历整个数组,逐一求和sum.当sum <= 0 时,对后续子序列和不是正收益,直接舍弃,同时用max记录sum的最大值.
class Solution { public int maxSubArray(int[] nums) { int max = -2147483648;//避免干扰设置成最小 int sum = 0; for(int i : nums){ if(sum > 0){ sum += i; }else{ sum = i; } max = max > sum ? max : sum; } return max; } }
学习了大佬们给出的动态规划法 感觉跟贪心法一个思路,只不过是把sum求和结果放在nums上了
class Solution { public int maxSubArray(int[] nums) { int point = nums[0]; for(int i = 1;i < nums.length;i++){ if(point > 0 ){ nums[i] += point; } point = nums[i]; } return Arrays.stream(nums).max().getAsInt(); } }
哈尔滨理工 校园网 公网ipv6教程
校园网支持ipv6,上联单位为cernet2黑龙江省结点,使用isatap隧道技术接入。
经测试获取到的是公网的ipv6!!甚至没有封禁关键端口
linux下操作 我用发行版是manjaro 其他的发行版也行 用对应的工具安装isatapd即可
[dragonfsky@dragonfsky-mi ~]$ sudo pacman -S isatapd [dragonfsky@dragonfsky-mi ~]$ sudo isatapd 192.168.254.250 isatapd[72459]: interface is0 up 出现如下提示时即可获得教育网的公网ipv6地址
windows下操作
Dos下输入netsh Interface ipv6 isatap set router 192.168.254.250 set state enable exit
两数相加
问题描述
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
本彩笔的解法 纯粹的按部就班 浪费很多内存空间 唯一的优点就是速度还行 感觉有很多三元运算符是没必要的,以后再看看。
时间复杂度:O(max(m, n))
空间复杂度: O(max(m,n))
class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode tempNode = new ListNode(0); ListNode firstNode = tempNode; int nextPlus = 0; while(!(l1 == null && l2 == null)){ int sum = ((l1==null)?0:(l1.val))+((l2==null)?0:l2.val) + nextPlus; nextPlus = 0; if (sum >= 10) { nextPlus = sum/10; sum -= nextPlus*10; } tempNode.next = new ListNode(sum); tempNode = tempNode.next; l1 = l1==null? null : l1.next; l2 = l2==null? null : l2.next; } if (nextPlus > 0) { tempNode.next = new ListNode(nextPlus); } return firstNode.next; } }
大佬们的解法
class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode pre = new ListNode(0); ListNode cur = pre; int carry = 0; while(l1 != null || l2 != null) { int x = l1 == null ? 0 : l1.val; int y = l2 == null ? 0 : l2.val; int sum = x + y + carry; carry = sum / 10; sum = sum % 10; cur.next = new ListNode(sum); cur = cur.next; if(l1 != null) l1 = l1.next; if(l2 != null) l2 = l2.next; } if(carry == 1) { cur.next = new ListNode(carry); } return pre.next; } } 作者:guanpengchn 链接:https://leetcode-cn.com/problems/add-two-numbers/solution/hua-jie-suan-fa-2-liang-shu-xiang-jia-by-guanpengc/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
双数之和问题
问题描述
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
有点不太理解 “数组中同一个元素不能使用两遍” 具体值的什么
最简单的暴力法 时间复杂度:O(n^2) 空间复杂度: O(1)
class Solution { public int[] twoSum(int[] nums, int target) { for (int i = 0 ; i < nums.length ;i++ ) { for (int j = nums.length-1 ; j != i ; j--) { if ((nums[i]+nums[j]) == target) { System.out.print(" i:"+i+"j:"+j); break; } } } throw new IllegalArgumentException("No two sum solution"); } }
优化的思路利用哈希表
哈希表可以建立关键字key和索引的映射,通过以空间换取速度的方式,在不产生冲突时能够以恒定的时间进行快速查找,一旦产生冲突查找时间可能会从O(1) 降低到 O(n)。
时间复杂度:接近O(n) 空间复杂度:O(n)
class test{ public int[] get(int[]num , int target){ Map<Integer,Integer> map = new HashMap<>(); for (int i = 0 ; i < num.length ; i++ ) { if (map.containsKey(target - num[i])) { return new int[]{map.get(target-num[i]),i} } map.put(num[i], i); } } }
Java流笔记之对象序列化
java.io.Serializable
java.io.Externalizable
序列化机制可以将实现序列化的对象转换成字节序列,使得对象能脱离java程序存在.如果要使一个对象是可序列化的,需要实现Serializable接口或者Externalizable接口之一.
使用Serializable标记接口实现对象的序列化很简单,只需要目标对象类实现Serializable接口即可,无需实现其方法.如果希望让对象的一些实例变量不被序列化,可以使用transient修饰符修饰.
1.将student对象序列化并储存在磁盘中并读取还原成对象
import java.io.ObjectOutputStream; import java.io.ObjectInputStream; import java.io.FileOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.Serializable; import java.lang.ClassNotFoundException; public class SerializeTest{ public static void main(String[] args) { try( ObjectOutputStream oop = new ObjectOutputStream(new FileOutputStream("log.txt")); ObjectInputStream oip = new ObjectInputStream(new FileInputStream("log.txt")); ){ Student s1 = new Student(3,"李华",1998); oop.writeObject(s1); Student s = (Student)oip.readObject(); System.out.println(s.age + " " + s.name + " " + s.year); }catch(Exception e){ e.printStackTrace(); } } } class Student implements Serializable{ int age; transient String name; int year; Student(int age, String name, int year){ this.age = age; this.name = name; this.year = year; } }
运行结果:(name用transient修饰,并未被序列化写入到磁盘) 3 null 1998 [Finished in 0.9s]
使用transient修饰的实例成员会被排除在序列化机制外,导致在反序列化时无法获得该实例成员的值.除了transient修饰符之外,Java还提供了自定义序列化机制,通过自动序列化机制,可以使程序自定义控制序列化流程.自定义序列化包含三个方法:
private void writeObject(ObjectOutputStream out) //负责写入对象 默认会调用out.defaultWriteObject()方法 private void readObject(ObjectInputStream in) //负责读取恢复对象 默认会调用in.defaultReadObject()方法 private void readObjectNoDate() //当序列流不完整时,负责初始化反序列化对象
**注意**
- 如果使用序列化向一个文件写入了多个对象,那么读取时是按照写入顺序读取.
- 若可序列化对象拥有多个父类,那么这些父类要么有无参的构造器,要么也是序列化的,否则就会抛出InvalidClassException异常.另外,如果父类是不可序列化但有无参数的构造器,则父类中定义的成员变量值不会序列化到二进制流中.
- 若类的成员变量不是基本类型或者String,而是其他的引用类型,则这个引用类型也要是可序列化,否则该类无法序列化.(因为在序列化对象时,对象的所有成员变量也会被序列化).
- JAVA序列化机制采用了特殊的算法
- 所有保存到磁盘的对象拥有一个特殊的序列化编号
- 在程序进行序列化对象之前会检查该对象是否被序列化过,只有在该对象在(本次java虚拟机)未被序列化过时才会将该对象转换成字节系列.
- 若该对象已经被序列化过,则程序会直接输出该对象的序列化编号.
- **注意**在对可变对象进行序列化时一定要注意,如果在序列化可变对象后再改变该对象并且进行序列化,程序只会输出该对象改变前的序列化编号,并不会将改变过的对象重新序列化输出.