2 阳光大男孩!

尚未进行身份认证

我要认证

一定要加油!拼tmd!

等级
TA的排名 9k+

数据结构—栈对表达式求值

前言在栈对表达式求值中,主要有中缀表达式和后缀表达式,表达式组成为操作数和操作符。中缀表达式就是我们常见的运算式子 例如A*B+C;利用栈对中缀表达式求值的过程主要为将中缀表达式转换为后缀表达式对后缀表达式进行求值中缀表达式转后缀表达式整体过程是对后缀表达式进行从左到右的遍历,需要一个栈用来保存操作符.思路为:如果遇到操作数就输出如果遇到运算符,如果要进栈的运算符比在栈顶的运算符优先级高,则入栈,否则从栈中输出运算符,知道栈顶的符号优先级小于要入栈的运算符。待遍历完成后,将运算符

2020-10-20 18:37:00

Anroid SIGSEGV(SEGV_MAPERR)可能的解决方案

前言最近App闪退,通过Bugly监控看的一头雾水,都是一些底层库的东西,并且并不是可复现的。Bugly提供信息不过好在Bugly有跟踪日志在日志的最后看到了红字 IMemory : cannot map BpMemoryHeap (binder=0x9b2af780), size=18665472, fd=87 (Out of memory)什么?我OOM了?但是我在开发的过程中,明明通过LeakCancy内存泄漏神器进行了周密的内存泄漏排除鸭。并且问题并不复现,在思考了两三天后,并

2020-10-18 23:12:16

工具推荐之Scrpy—电脑投屏操作安卓电视盒子的最佳实践

前言Scrpy工具能在电脑上投屏实时操作电视盒子,是没有显示屏但集需操作电视盒子的福音。比如对于我这种Android开发者,就很有用。一、百度网盘下载地址链接: https://pan.baidu.com/s/1GW4HdbR4ezYNF6IB9xWPmg提取码: e4q8二、必要配置电脑与盒子须在一个局域网内,例如一个WIFI下盒子使用wifi adb软件电脑通过adb connect [IP] 命令连接电视盒子运行Scrpy工具双击后,即弹出投屏,我们就可以操作并在电脑上实时显

2020-10-15 23:21:39

数据结构复习 反转链表

思路定义两个指针: pre 和 cur;pre 在右 cur 在左,初始cur指向NULL,pre指向第一个结点每次让 pre 的 next指向 cur ,实现一次局部反转局部反转完成之后, pre 和 cur同时往前移动一个位置,循环上述过程,直至 pre到达链表尾部class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* cur = NULL, *pre = head;

2020-10-07 23:31:29

判断两个二叉树是否相同(深度优先搜索)

思路—深度优先搜索判断两树是否都为空,若都为空,则相同。如果一个树为空,另外一个树不为空,则一定不相同判断两棵树根节点是否相同,若不同,则一定不是相同的树,否则,分别判断两棵树根节点的左子树根节点是否相同、两棵树根节点的右子树根节点是否相同。(递归)leecode 官方题解class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if (p == null && q == n

2020-10-07 23:12:22

Nacos 百度云下载(Zip版)

百度云下载地址链接:https://pan.baidu.com/s/1kP3kW_Jve5h50_nDAmdXSA提取码:mn1a解压后运行进入nacos/bin ,运行startup.cmd这是一个spring项目,并且端口为8848(珠峰高度)进入配置界面

2020-10-03 00:08:21

HashMap总结

HashMap是数组+链表,通俗点讲就是数组里放链表,链表中放的是Key-Value,链表元素叫做Entry.HashMap有负载因子0.75和初始容量16,同时有对应的阈值16*0.75=12。在put元素时,按照哈希码&(数组元素-1),计算应该放到哪个链表里。当size大于阈值时会将数组扩容,扩容到原来的两倍,将旧数组里的元素全部重新计算下标放到新数组中。在JDK1.7中,插入结点使用头插法,在1.8后,将头插法改成了尾插法。...

2020-09-24 23:14:43

C语言 构造双循环链表 正向输出和反向输出

前言双循环链表是指,每个结点都有指向下一个结点的指针和指向前一个结点的指针。同时,尾结点的next域指向头结点,头结点的prior域指向尾结点。C语言代码实现#include <stdio.h>#include <stdlib.h>typedef struct DoubleCirNode{ int data; struct DoubleCirNode *next; struct DoubleCirNode *prior;}DoubleCirNode,*DCList

2020-09-23 23:14:06

最大公约数和最小公倍数(C++实现)

实现思想最大公约数:辗转相除法最小公倍数:两个数的乘积再除最大公约数C++ 实现#include <iostream>#include <bits/stdc++.h>using namespace std;// 辗转相除法求最大公约数 // 1.将较大的数放在a上// 2.辗转相除int gcd(int a , int b){ int temp; if(a<b) { temp = a; a = b; b = temp; } whil

2020-09-17 21:53:45

数据结构—树和森林的遍历方法

树的遍历树的遍历主要有先根遍历和后根遍历。先根遍历:若树非空,则先访问根结点,再按照从左到右的顺序遍历根结点的每一棵子树。这个访问顺序与这棵树对应的二叉树的先序遍历顺序相同。后根遍历:若树非空,则按照从左到右的顺序遍历根结点的每一棵子树,之后再访问根结点。其访问顺序与这棵树对应的二叉树的中序遍历顺序相同。森林的遍历森林的遍历包括先序遍历和中序遍历。若森林非空:先序遍历访问森林的第一棵树的根结点先序遍历第一棵树中根结点的子树先序遍历除去掉遍历过的树的森林中序遍历中序遍历第一棵树中

2020-09-17 21:36:21

数据结构复习—排序实现总结(Java实现)

冒泡排序n-1趟排序,每趟都能确定一个位置。public class BubbleSort { private static void bubbleSort(int[] arr) { boolean isSwap; int n = arr.length; // n-1趟 for (int i = 0; i < n - 1; i++) { // 从后到前,两两交换,每趟都能确定一个位置

2020-09-17 21:14:32

尾插法构建双链表并遍历(C语言)

前言双链表是指,不光有后缀指针,还有前缀指针,需要注意的是,要与双向循环链表区别,在双链表中,表头结点的前缀指向NULL,表尾结点的后缀指向NULL;双链表的定义typedef struct Dnode{ struct Dnode *next; struct Dnode *prior; int data;}Dnode,*DnodeLinkedList;双链表的构造(尾插法) //构造双链表 DnodeLinkedList DL = (DnodeLinkedLi

2020-09-13 10:56:52

链表构建 头插法和尾插法(C语言实现)

头插法实际上,头插法是将要插入的结点,插入到表头结点和已插入结点的中间,核心实现看第三步。头插法的步骤如下:构建链表,并让其next为NULL;构建要插入的结点 s让s->next = L->next; 再让L->next = s;#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct node *next;} node,*LN

2020-09-13 09:57:42

Vue 搭建一个前端项目

一、前言之前图省事,都是在html中引入Vue.js的CDN来使用Vue开发网站项目,其实正确的做法应该是使用Vue构建一个完整的项目,进而进行前后端分离的开发。二、让我们开始吧!1 node环境安装从 node官网下载node.jshttps://nodejs.org/zh-cn/2 安装vue-clinpm install vue-cli -g3 新建项目vue init webpack vue-project一路yes!cd vue-project npm run d

2020-09-11 09:48:46

Androud 如何区分USB设备

在获取到USBDevice后,我们可以调用它的getSubClass()和getDeviceClass()方法来唯一标识。例如 if (usbDevice.getDeviceSubclass() == 0 && usbDevice.getDeviceClass() == 255) { } 那如何知道每个设备的这些种类呢,主要有两种方法,一是在开发中,遍历打印知道后再次开发。二是去Android 官方文档查找判定。传送门如下https://developer.android

2020-09-03 22:36:47

Android 设置权限后listFile仍返回null的可能解决方案

Mark一下android6.0之后对READ和WRITE 存储需要动态运行时权限我是对/storage/emulated进行listFile操作,发现返回null,并经检查这个emulated其实是不可读的,这跟Linux的lrwx文件权限有关,但是我发现/storage/emulated/0是可读的,这就好像:你在windows图形化界面一层一层打开一个文件发现打不开,但是直接通过文件地址栏输入全路径就可以,这在Linux上是允许的。...

2020-08-27 07:13:31

Springboot启动时读取外部配置文件

Mark一下Spring Boot 程序会按优先级从下面这些路径来加载application.properties 或者 application.yml 配置文件jar包同级目录下的/config目录jar包同级目录classpath里的/config目录classpath 同级目录比如我直接放到了同级目录。比较有意思的是,打进jar包的反而是优先级最低的那一个。...

2020-08-26 15:28:05

ElementUI 设置table的内容居中

在对应的column下加align="center"即可 <el-table-column align="center" label="回收" width="120">

2020-08-22 23:39:48

直接插入排序(Java实现)

思想(非递减)把一个数组分为三部分:已经有序的序列,待排序列。每次都从从将待排序列的第一个元素与有序序列的最后一个比较:若待排元素大,则说明顺序正确,跳转到下一个待排元素进行比较。若待排元素小,则说明顺序错误,与有序序列进行从后到前,一 一 比较如果待排元素小,则让有序序列对应的那个元素后移一位,也就是给待排元素腾地方。Java 代码 /** * 非递减直接插入排序 * 9 8 7 6 5 4 3 2 1 * * @param arr * @pa

2020-08-18 19:31:34

CentOs7中Jps命令找不到

CentOs7中Jps命令找不到原因是CentOs7自带Open-JDK,可能没有jps,或者说有jps,但是需要配置环境变量,这里我直接下载devel包yum install java-1.8.0-openjdk-devel.x86_64

2020-08-16 15:44:17

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。