- 博客(35)
- 收藏
- 关注
原创 树 图 排序算法基础总结~
首先祝Linux生日快乐开源不是免费!!!!!!这篇文章总结一下树,记得之前总结过,但是在遗忘知识这方面我绝对是大神级别的。这次立flag最后一次总结树二叉树,故名思意,有两个子节点的数据结构。为了更深刻的了解二叉树,先写个垃圾题。leetcode根据前序和中序遍历重建二叉树https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof/int findrootPosIninorder(int[] inorder, int k
2022-01-12 14:42:49
296
原创 java简单泛型总结
java为什么需要泛型试想collection没有泛型,装item不安全,取出item是Object 需要强制类型转换有了泛型 可读,稳定 更健壮 代码更简洁泛型类 public class objectTool<T>{}泛型方法 public<T> void show(T t){}泛型类派生子类 明确类型 public class children extends fa...
2021-09-17 00:12:59
103
原创 java并发编程的艺术读书笔记5
5.1Lock接口javaSE5之后加入了Lock。Lock相对于Synchronized在一些方面有更多的灵活性,比如获取A,B释放A获取C,释放B获取D的场景,使用Lock比Synchronized要优雅的多。Lock提供的synchronized不具有的主要特性有 尝试非阻塞的获取锁 能被中断的获取锁 获取到锁的线程可以响应中断 超时获取锁为了便于理解 这里找了一个Synchronized的不能被中断的获取锁的例子static Object help=new Object();
2021-09-09 00:24:42
118
原创 对于基础算法考试的准备
1.java Comparable,字典序排序,自定义排序,各种写法2.二分3.最小生成树 路径压缩4.图的邻接链表存法,图的遍历 dfsbfs邻接链表生疏了,搞了个leetcode207,反而暴露了很严重的问题,java基础也学了一段时间了,传值传递什么的也明白,但是写的时候还是突然会忘掉,因为总觉得Integer Boolean传递的是对象引用,所以重新赋值也可以,但踩坑踩了半天竟然还意识不到 .... public boolean canFinish(int numCourses
2021-09-05 16:20:55
82
原创 近日leetcode题目总结
(以下序号都是leetcode原题)单调栈503 739对于单调栈一直有心理阴影(之前有一个场景很复杂的单调栈给我吓坏了),这次写总结的时候刚刚又写了一遍,当我们求一个单调答案集的时候,由于求其中某个答案可能对后面有一定的剩余价值,就需要类似单调栈的结构。public int[] nextGreaterElements(int[] nums) { int[]ans=new int[nums.length]; Arrays.fill(ans,-1);
2021-09-05 16:18:01
107
原创 KMP算法(flag:这辈子最后一次总结KMP)
今天的感悟:欲速则不达 欲速则不达 欲速则不达 欲速则不达 欲速则不达 欲速则不达 欲速则不达。字符串匹配场景母串:************* 长度m子串:**** 长度n字符串匹配能有什么样子的解法呢.在很多情况下 如果字符串没什么特点 暴力似乎是唯一的解法 我们不得不遍历母串,每次按照字串长度对比双指针 i指向母串 j指向子串for i 0,i-j+1对于每个i对比这两个范围i->i+j-1 == 0->j-1这样的复杂度O(mn)1...
2021-08-24 23:52:48
96
原创 20210822月度学习内容梗概
1.java核心技术卷1自动类型转换只能向范围更大的转换,强制类型转换丢失精度,double的使用不适合及其需要准确值的场景。&和|可用于boolean但不短路判断。String拼接次数过多可以用StringBuffer StringBuilder等提升效率。charAt过于底层 要用int[]=str.codePoints().toArray trim删除头尾空格 StringBuffer支持多线程但效率低于StringBuilder文件读写。new Scanner(PathOf(“.
2021-08-22 15:16:20
90
原创 java并发编程的艺术读书笔记3
concurrent包的实现.上文中我们已经知道.java的CAS同时具有volatile读写的效果,Java线程间通信至少有以下四种方式.A线程写volatile变量.B线程读这个变量A线程CAS更新一个变量,B线程CAS更新一个变量A线程写volatile变量.B线程CAS更新这个变量A线程CAS更新一个volatile变量,B线程读取这个变量接下来是一段看起来很棒的话Java的CAS会使用现代处理器上提供的高效原子指令 这些指令可以原子的对内存执行读 改 写操作..
2021-08-22 00:10:16
77
原创 Java并发编程的艺术读书笔记2
上文结尾写到循环CAS实现原子操作java中可以通过锁和循环CAS的方式实现原子操作使用循环CAS实现原子操作,JVM中CAS操作正是利用了处理器提供的CMPXCHG实现的,自旋CAS实现的基本思路是循环进行CAS操作成功为止,CAS存在ABA问题,a->b->a好像a没有变 使用版本号可解决循环时间长开销大 JVM提供pause,使cpu不消耗过多资源, 避免退出循环时因内存顺序冲突引起CPU流水线清空.只能保证一个共享变量的原子操作. 合并变量.使用...
2021-08-18 17:56:02
87
原创 Java并发编程的艺术读书笔记
这几天听Di哥的推荐在看Java并发编程的艺术这本书.索性把读书笔记也写到博客里...1并发编程的挑战(上下文切换,死锁,资源限制)(1)上下文切换的挑战○用并行执行和串行执行的小实验对比证明并行并不是一定比串行快的,这里我也自己写了一遍书中的代码并亲自测试了一下.先贴代码和结果.package test;public class testConcurrencyAndSerial { static long count = 1000000L; public
2021-08-18 09:11:24
127
原创 2021年8月11日19:24:15 寻找同一条线上最多的点
leetcode题意:输入一串点的坐标,寻找同一条直线上点的最多个数BadCodeimport java.math.BigDecimal;import java.math.RoundingMode;import static java.lang.Math.*;class Solution { public static int maxPoints(int[][] points) { int num = points.length; Map<Stri
2021-08-11 19:47:03
94
原创 java集合类学习20210810
文字描述:暂时了解的集合类可以粗略分两类. Collection 和MapCollection的实现有AbstractCollection ListSetQueue等,这里暂时不考虑另外三种util中的 实现下一层是对List Set Queue AbstractCollection的实现对于List的实现有AbstractListArrayListLinkedListVector等,这里其余三种暂时不予讨论特别的只听名字会想当然的..
2021-08-11 15:35:36
77
原创 不要期盼double给出正确的数值
题意.进制数转换 .输入:十进制数(0.00000009,1) 进制[2,9]输出:转换的N进制结果BadCode:public class testOj { static double solve(double a,double b){ double ans=0; for(int i=0;i<10;i++){ ans*=10; int k=(int)(a*b); ans+=(.
2021-08-11 15:02:33
78
原创 剑指offer 杂题2
(1)调整数组顺序使技术位于偶数前借助辅助数组会简单很多.class Solution {public: void reOrderArray(vector<int> &array) { int len=array.size(); int ji=0,ou=0; vector<int> temparray; for(int i=0;i<len;i++) {
2020-05-25 11:42:35
93
原创 剑指offer其余题目总结1....先补上二叉搜索树的第k个结点
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: int kth; TreeNode * ans; void dfs(TreeNode * p){.
2020-05-24 22:36:40
104
原创 剑指offer 菜鸡划水的二叉树总结1
(1)重建二叉树上来就想递归就完事儿了/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode*..
2020-05-24 11:37:45
162
原创 剑指offer 划水链表2
(1)两个链表的第一个公共结点字节跳动的HR人真的很好 和蔼可亲 就像傅姓洲洲学长一样 人超好 给我出的题很简单,,可惜我 面字节一点没准备 怕是一年多没写代码 我连这个都没写出来 我人傻了 我是飞舞首先是比较常规的写法.我们维护一个map,然后遍历一下这俩链表 ,找见相同的就返回好咯./*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) ...
2020-05-23 09:56:17
134
1
原创 划水总结剑指offer 链表系列1
最近在找实习,发现面试题和oj的题差距蛮大的,然后粗略的刷了一遍剑指offer.希望6月中旬前能拿个实习(捂脸哭)1.首先总结关于链表的题.(1)从尾到头打印一个链表.像我这样的憨憨上来就想 这不是反向链表然后打印吗.此题并没有要翻转这个链表,而是可以递归的将链表的值倒序输出即可.class Solution {public: vector<int> ans; void diguiPrint(ListNode * p){ if(!p)return;
2020-05-22 18:56:52
115
原创 GNU C对C的拓展之 特殊属性申明
GNU C 允许使用特殊属性对函数变量,类型修饰,以便对代码进行手工优化和定制。在申明处加入关键字_attribute__((ATTRIBUTE))即可制定特殊属性,如果存在多个属性 要用逗号隔开。GNU C目前支持noreturn noinline always_inline pure const nothrow format format_arg no_instrument_function ...
2020-04-15 15:09:15
209
原创 GNU c对c的扩展
1.变长数组#include<bits/stdc++.h>using namespace std;struct s{int n;long d[0];};int main(){ int length=5; struct s *p=(struct s *)malloc(sizeof(struct s)+sizeof(long)*length); p-...
2020-04-11 17:49:56
143
原创 防撤回dll
在家闲着无聊想做些小东西,玩游戏被神仙打到自闭就顺便查了查神仙的科技都咋回事,其中有的就是dll注入做的,但其实在看dalao的文章之前我连dll都不知道是啥(看了之后也不知道),看到看雪的一篇文章是写wx的防撤回,本身学的东西又很少,就看着dalao的文章试着(抄)一下,侵权必删,别骂了,再骂人就傻了。。看雪那个大佬的原文链接:https://bbs.pediy.com/thread-25805...
2020-03-18 20:33:56
544
原创 hdu6438 8.27火大啊啊啊啊.
网选赛做的和*一样...我背锅.题意:输入n个数.代表某商人一次经过地方的某物品价格.商人一次只能在某个地方买或者卖一台或者不买不卖.求获得的最大利益.我蠢到存下所有价格然后每次找最大最小价格看顺序买卖.woc想起来我就是一sb啊.........瞎写个思路吧:首先想从短到长的结果。如果某个例子多加一个数,就找之前所有数中最小的那个然后看看卖了是否赚钱就好.如果卖掉的是之前买入的就可以...
2018-08-27 20:55:49
218
原创 vijos1056 8.27xiaolver快没时间了
题目链接:https://www.vijos.org/p/1056简单题,做了之后并没有对离散化有很多认识(本来是想认识一下离散化的)输入n组数据 每组都是矩形的左下点和右上点.求这些矩形覆盖的面积,由于坐标范围太大开不了就先用数组存坐标.把覆盖的地方按蓝线黑线分割.覆盖面积就是每两个最相近x和两个相近y组成的矩形.将输入的x,y都存起来排序,枚举每两个最近x,y当他们组成...
2018-08-27 20:00:09
111
转载 hdu6308 多校签到题 ,直接上代码
#include <iostream>#include <cstdio>#include <math.h>#include <cstring>#include <iomanip>#include <algorithm>#include <cstring>#include <vector
2018-08-20 01:01:18
226
原创 Co-prime hdu4135 初识容斥定理
题意:输入A,B,C 输出A-B 中与C互质的数的个数.先处理出C的因子 然后找1-(A-1)与C互质的数,找1-B 与C互质的数.相减就是答案.现在问题就变成了如何快速求1-n与C互质的数.暴力判断肯定会超时.显然如果C的因子在范围内.C的因子倍数也不是与C互质的比如2是C的因子 2 4 6 8 10...都不合法.3是C因子.3 6 9 12 15 ..不合法可以注意到6重...
2018-08-18 19:02:46
117
原创 hdu1083course 匈牙利基础题.8.12日常周日开始学习
输入课程数p和学生数q.然后是p行,每行开头是这门课选的人数n,之后n个学生编号。问是否每个人都能找到自己喜欢的课.每门课只能被选一次哟匈牙利算法是二分图中最经典的算法了.主要思想是当匹配第n个课程时.依次看n的连线.如果遇到可连的就直接连接.不可连接就看看想连接但是已经有对象的人是不是可以换个人连接233333.#include <iostream>#include &l...
2018-08-12 10:56:32
89
原创 hdu6370 辣鸡xiaolver8.9多校赛第二天尝试写一个有点含量的t
首先题意:有n个玩家每个玩家说一句话.话是 数字n+猜测身份.输出最少可能的人和狼。人必须说真话,狼可说真可说假.首先如果都是狼,显然有这种可能,所以人最少就是0了。第二我们能从一只狼推出另一只.说铁狼不是狼的一定是狼(人不能说假话)如何找铁狼呢?先从简单的开始.如果没有头绪可以分析一下题.狼说的话可真可假.人必须说真话!那狼的话便没有用.需要从人的话开始分析.那如果只有两玩家,当A...
2018-08-09 16:31:48
146
原创 hdu6362 多校的签到题,
这次是真的憋屈,第一题罚时40次+但是确实很简单.猜也能猜出来这次用积分求一下. ss求出期望就是a*π+2*b;此处是直接小数点后截取6位.。。printf和cout 用setprecision都是四舍五入,可以用floor.#include <iostream>#include <string>#include <cstring>...
2018-08-09 13:14:52
254
原创 hdu6373 物理题 8.9也是xiaolver菜的像狗的一天
http://acm.hdu.edu.cn/showproblem.php?pid=6373 题目大概是说有一块板,求 球能在板上弹几次.乍一看,好麻烦啊,然后做的时候你会发现,其实真的很麻烦.....和做高中物理题一样看成g分解为沿斜面和垂直鞋面的部分计算.高中物理就经常错在时间上,要记住你算的时间是一次的,弹起来在落下是两倍的时间!#include <iostream&...
2018-08-09 10:08:15
196
原创 HDU3068--------8.7初识Manacher
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3068求最长回文长度;直接上代码#include <iostream>#include <string>#include <cstring>#include <stdio.h>#include <math.h>#inclu...
2018-08-07 20:42:39
103
原创 hdu1711 KMP入门 8-6xiaolver真菜
题意:输入两个数串,问第二个数串在第一个里面的位置,不存在返回-1;KMP最难理解的我认为是下一个数组的求解只要稍微了解过就会知道KMP算法是匹配字符串失败时想办法跳过重复的匹配。;1 2 3 1 2 4要匹配到1 2 3 1 2 3 1 2 3 1 2 4暴力就是一个一个枚举到结尾,但是你发现,这字符串匹配到第二个三时如果可以从子串中3开始就省下几次匹配。NEXT数组求解voi...
2018-08-07 19:40:09
115
原创 字典树hdu5687------8.4 xiaolver正式开始学习的第一天
给自己的话——之前落下的你找时间补吧......哈哈哈哈哈嗝.先放一个字典树的题.邻接链表确实比邻接矩阵更快更不占内存但是对于我这菜狗子来说理解真是很刺激的一个过程。题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5687度熊手上有一本神奇的字典,你可以在它里面做如下三个操作: 1、insert : 往神奇字典中插入一个单词 2、...
2018-08-04 20:07:46
137
原创 POJ3414简单dfs+记录路径
#include <iostream>#include <algorithm>using namespace std;#include <cstring>#include <queue>#include <stack>int vis[500][500];int a,b,ans,c;struct zhuangTai{ int a,b,...
2018-04-14 12:59:50
375
原创 poj3087
题意说的是对两组字符串进行洗牌操作看是否能得到第三组字符串.简单题,直接上代码.有人说要先进行第一次洗牌再存判重的字符串.但是其实如果出现第二次第一次洗牌的结果那就必定得到第二次的第一次直接把两副牌摞起来的结果.直接上代码#include <iostream>#include <cstring>#include <string.h>#include <...
2018-04-10 15:03:16
306
原创 一只萌新学bfs和dfs 的艰难旅程-dalao请离开....不浪费您时间..............
第一次写博客大家见谅........(如果有好心大佬有给我的代码改进意见欢迎加qq或者直接评论留言.感激不尽)首先安利一个acm入门的网址(第一次写......)https://www.zhihu.com/question/51727516/answer/127265733?utm_medium=social&utm_source=qq首先是A题... A题题意大概是输入a和b, a代表棋...
2018-04-05 17:45:40
365
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人