自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 Sublime Text 4 激活教程(Windows+Mac)

Sublime激活方式

2023-07-21 22:32:10 12654 17

原创 移动端开发必备:安卓Android/苹果iphone主流机型尺寸

移动开发必备图表移动端设备分辨率开发过程中离不开UI绘制,自然需要理解px、dpi、dp、sp等概念。本人是在开发横竖屏布局自适应的过程中,突然想到,如果对各个测试机/平板尺寸分辨率有一定认识,必然有助于调整布局、碎片、控件以及各项资源的比例与位置。话不多说,参考网上现有资料,整理如下。安卓端-Android苹果端-iphone有需自取~参考博文https://blog.csdn.net/a18339063397/article/details/81482073参考百度文库http

2021-08-03 17:03:37 1754

原创 Gitee/Github提交本地项目代码到远程仓库

使用Git工具,Git 2.30.1 官网下载下载安装请参考,Git 下载安装配置教程抑或不参考下载安装教程,暴力安装,安装过程全部选默认或者Recommended(推荐)的选项即可。Git 下好配置好之后,桌面 >> 右键鼠标 >> Git Bash Here第一步全局配置$ git config --global user.name "你的名字-随便"$ git config --global user.email "你的邮箱"$ git config --g

2021-02-25 22:06:17 487

原创 Git工具常用命令/使用教程

Git程序员必备版本控制工具,不会的就学一下还不会Git的同学,点一下就会,图文讲解Git完整命令手册地址GIT CHEAT SHEET中文对照版本

2020-12-19 19:20:11 144 1

原创 剑指-翻转单词顺序列-String[]/StringBuilder

题目描述输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。输入: “the sky is blue”输出: “blue is sky the”输入: “a good example”输出: “example good a”解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。输入: " hello world!

2020-10-14 21:48:04 86

原创 剑指-把数组排成最小的数-int[]转string[],自定义排序

题目描述输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。输入: [10,2]输出: “102”输入: [3,30,34,5,9]输出: “3033459”思路排序判断规则:设 nums 任意两数字的字符串格式 x和 y ,则若拼接字符串 x + y > >y+x ,则 x > y;反之,若 x + y < y + x ,则 y < x;用任意排序法 升序排。代码Arrays.sort;clas

2020-10-09 20:54:48 91

原创 剑指-复杂链表的复制-深拷贝/HashMap

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]输入:head = []输出:[]解释:给定的链表为空(空指针),因此返回 n

2020-10-07 21:46:51 191

原创 剑指-树的子结构-套娃/记忆

题目描述输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3 / \ 4 5 / \ 1 2给定的树 B: 4 / 1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。思路这类题目与字符串匹配有些类似,求解过程大致分为两步:匹配根节点。找到AB匹配的节点C。匹配其他节点。验证C的子

2020-09-24 21:33:54 74

原创 Java基础-List接口-ArrayList/LinkedList实现类

以ArrayList为例语法区别:List list = new ArrayList();ArrayList arrayList = new ArrayList();面向接口角度出发:List是接口(抽象类),不可实例化;ArrayList为它的实现类可以实例化。声明为List对象,则不能用ArrayList中的自定义以及本身独有的方法和属性。声明为List对象,可以规范代码,利于代码重构;即可接受ArrayList对象或LinkedList对象,改动时只需动一行,其他用List对象的

2020-09-23 09:18:00 170

原创 剑指-二维数组的查找-旋转数组/缩小范围

题目描述在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16,22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30] ]给定 target = 5,返回 true。

2020-09-17 16:20:06 86

原创 剑指-数据流中的中位数-优先队列/大小堆

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。思路1.存列表排序

2020-09-16 16:56:25 99

原创 剑指-链表中环的入口结点-快慢指针/HashSet

题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路两种方法,其一用双指针,一个走两步,一个走一步。确定有环并得出节点数,再走一圈就是入口。其二,用hashset,set里面逐个加节点,遇到重复的就是入口。代码/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/p

2020-09-15 20:30:28 91

原创 剑指-和为S的两个数字-双指针/Hash

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。思路利用 HashMap 可以通过遍历数组找到数字组合,时间和空间复杂度均为 O(N) ;nums 是 排序数组 ,可用 双指针法 将空间复杂度降低至 O(1) 。代码1.菜鸡型import java.util.ArrayList;import java.util.Arrays;public class Solution { public Arra

2020-09-14 11:03:17 97

原创 剑指-和为S的连续正数序列-滑动窗口练习

题目描述输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。思路滑动窗口注意边界条件,有两个点忽略导致没有100%。while(i <= sum / 2) ;少写了 = ;所以当sum为3时,直接就全部跳出去打印了。2.int i = leftp; i< rightp;i++;多写了 = ;右指针部分在之前是先求和,再自加。所以右指针此时并不指向arr里的最后一个元素。i

2020-09-13 20:50:24 81

原创 剑指-数组中数字出现的次数-hash用法和小细节

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。思路空间复杂度要求不能用map了(O(n)),暴力更不想了(O(n^2))。一、正解:分组异或。链接如下。大佬分组异或做的二、不管要求,就只会map。练练也行。小细节:1、hashmap.getOrDefault(x,y)x,y类型自定,意思x存在keySet()里就获得对应value,x不存在就默认给个y。2、int[] 和 int 动态

2020-09-11 21:29:37 119

原创 剑指-1~n整数中1出现的次数-数学分析/转字符串(String/Char)

题目描述输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。思路自己上手思路是转字符串,然后暴力查每个char。代码贴下面,在牛客上100%过,leetcode上超出时间限制。归根结底是个数学问题,按位去做处理更合理。大佬思路:时间复杂度O(logn);空间复杂度O(1)。代码1.转字符串import java.util.ArrayList;public class Soluti

2020-09-10 21:41:58 91

原创 剑指- 数组中出现次数超过一半的数字-hashmap练习

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路1.练习HashMap运用,统计就完事了;2.排序,取中值;3.无敌-摩尔投票法。摩尔投票法:票数和: 由于众数出现的次数超过数组长度的一半;若记 众数 的票数为 +1 ,非众数 的票数为 −1 ,则一定有所有数字的 票数和 >0 。票数正负抵消: 设数组 nums

2020-09-09 22:01:11 147

原创 遍历HashMap的最常用四种方法记记记

1.hashmap.keySet(),此法可得key和value;2.Map.Entry<x,x> entry ; foreach遍历 hashmap.entrySet();3.对第2种创建遍历器 Iterator <Map.Entry<x, x>> it , 遍历it.hasNext();4.hashmap.values() 不好用,只能得value。public static void main(String[] args) { HashMap

2020-09-09 21:56:05 165

原创 2020秋招小米软件开发笔试题

题型结构10道单选10道多选2道编程单选和多选题,难度不高偏基础。编程题1.判断密码是否符合要求:给一行密码:每个密码用空格分隔(1)同时具有大写、小写、符号、数字,则输出0;(2)长度不在8-120之间,则输出1;(3)类型不符合输出,即不符合(1)条件,则输出2;2.leetcode 79 原题:单词搜索给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的

2020-09-08 22:21:45 1224

原创 剑指-合并两个排序链表-双指针

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路创建单链表时,一般都会建一个伪头结点,也称哑结点(dummy node)。如此是为了所有节点都保证有前驱结点。关于哑结点的使用:可以引用一个cur指针指向dum,操作cur进行移动来完成所求链表的创建,最后返回dum.next即所求链表。此题思路是使用双指针遍历两链表,根据大小关系确定节点添加顺序,两节点指针交替前进,直至遍历完毕。代码/*public class ListNode {

2020-09-08 16:06:17 98

原创 剑指-反转链表-栈+递归

题目描述输入一个链表,反转链表后,输出新链表的表头。思路一、栈。把链表节点一个个入栈,当全部入栈完之后再一个个出栈,出栈的时候在把出栈的结点串成一个新的链表。二、递归。终止条件是当前节点或者下一个节点==null在函数内部,改变节点的指向,也就是 head 的下一个节点指向 head 递归函数。代码一、栈public ListNode reverseList(ListNode head) { Stack<ListNode> stack = new Stack<&

2020-09-08 10:06:13 112

原创 剑指-简单-二进制中1的个数-记忆

题目描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。思路根据 与运算 定义,设二进制数字 nn ,则有:若 n & 1 = 0n&1=0 ,则 nn 二进制 最右一位 为 00 ;若 n & 1 = 1n&1=1 ,则 nn 二进制 最右一位 为 11 。根据以上特点,考虑以下 循环判断 :判断 nn 最右一位是否为 11 ,根据结果计数。将 nn 右移一位(本题要求把数字 nn 看作无符号数,因此使用 无符号右移 操作)。代码p

2020-09-07 22:12:30 71

原创 剑指-简单-青蛙跳台阶(不同于斐波)

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路台阶数跳法11223448516632……简单明了,区别于只能挑1,2级台阶的跳法(此法为斐波那契),递归即可得答案。代码public class Solution { public int JumpFloorII(int target) { if(target==0) {

2020-09-04 00:10:36 81

原创 剑指-简单-二叉树的深度

题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。思路后序遍历(DFS) 和 层序遍历(BFS) 两种解法。代码一、递归(DFS)/ 后序树的深度和其左(右)子树的深度之间的关系。显然,此树的深度 等于 左子树的深度 与 右子树的深度 中的 最大值 +1 。class Solution { public int maxDepth(TreeNode root) { if(root == null

2020-09-02 15:09:13 74

原创 剑指-简单-不用加减乘除做加法

剑指-简单-不用加减乘除做加法题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路(1) 两数做与(&)运算之后二进制保留同为 1 的位置,也就是需要进位的位置。(2) 两数做异或(^)运算之后二进制保留除了同为 1 以外 1 的位置。(3) 循环将两数与(&)运算之后进位的结果再和两数异或(^)运算的结果做异或运算。(4) 直到二进制没有位置进位,则运算完成。代码class Solution { public int add(

2020-09-02 14:48:23 93

原创 字节跳动客户端开发校招提前批一面

2020.7.10-字节(头条)客户端面试记录算法1.给1元,2元,5元,10元,支付N元时有多少种方法。A:四层for循环,判断i1+j2+k5+m10 == N. 优化暂时想不到思路。2.二维字符数组中,给定某个字符串,从任意位置开始,可上下左右寻找。A:用DP,但是不会。leetcode有原题。3.反转LONG型整数。A:LONG转字符串,双指针反转字符串。后来查leetcode有另一种解法,可以%10取余,每次求一位。整体来说,难度不超过Leetcode中等。看了看其他头条面经,基本

2020-07-10 15:36:29 883

原创 JVM和内存管理

一、JAVA程序设计基本概念1.1 JVMClassLoader包括bootstrap classloader(启动类加载器,加载核心API),ExtClassLoader(加载扩展API),AppClassLoader(加载自定义类,即CLASSPATH设置目录中的Class)。ClassLoader加载流程运行一个程序时,JVM启动,运行bootstrap classloader,然后...

2020-02-19 04:04:21 131

原创 从Word读取内容并按所需格式输出到Excel

一.python-docx可以创建和编辑更新Microsoft Word(.docx)文件,(不能处理doc文件)函数库和使用语法基本思想是将一个word文件视作一个document对象,在其中处理一个个paragraph对象,text对应paragraph中的文本内容。同样可以处理table,picture等对象。导入库和实例化from docx import Documentdo...

2020-02-06 21:50:54 1475

原创 python全栈工程师学习笔记:基础语法篇(二)

1.字符串转义字符用“\”来表示特殊字符,回车,换行等s = "let's go" #嵌套引号s = 'let\'s go' #转义两者打印一致。格式化字符串按照一定格式打印或填充1.利用百分号(%)前有几个%占位符,后括号内有要填充几个参数,且按顺序。2.利用format函数“{}”来占位,可以编号“{0}”,也可以带标识“{name=}”NO...

2019-12-26 21:46:03 138

原创 python全栈工程师学习笔记:基础语法篇(一)

1.str内置函数查找类str.findstr.index都是用来找str中是否存在某个字符串区别:str.find没找到返回值为-1,str.index没找到返回ValueError,程序报错。str.rfind/str.lfind:从右查找,从左查找。类型判断类判断字母str.isalpha判断数字(能不用就不用,找数字用正则)str.isdigi...

2019-12-16 09:28:58 192

原创 数据结构:二叉查找树的实现

二叉查找树二叉树是节点最多只有两个子树的树状结构,这两个子树可以称为左子树和右子树。可是对于普通的二叉树,并没有足够的信息来提示我们左子树和右子树存储的是什么,我们没有办法进行高效的信息查找。为了提高查找效率,我们会把二叉树升级为二叉查找树(Binary Search Tree)。二叉查找树是符合以下定义的二叉树:1.节点左子树中全部的节点键值都比该节点要小。2.节点右子树中全部...

2019-09-25 20:01:23 268

原创 Python编程-使用pycharm2018过程中所遇问题合集

1.函数方法疯狂标黄,并不影响代码运行,强迫症难以自拔。函数标黄原因:python解释器版本与IDE版本不兼容,上述函数是简单的pushbutton事件绑定,所用的IDE是pycharm2018,解释器是Anaconda3,对应python3.7版本,connect函数这样写是可以用的。解决标黄方法:1.简单粗暴左边小灯泡,选择自动忽略。2.IDE与解释器版本适配,这个需要求助大佬了。...

2019-09-17 09:11:41 713

原创 C:exit(0),_exit(0),exit(1),exit(-1)作用与区别

exit(0):正常运行程序并退出程序。_exit(0):不能输出结果,未清除I/O缓存,不打印。exit(1):非正常运行导致退出程序;exit(-1):非正常运行导致退出程序,与1类似。在main中return v;的效果与exit(v);相同。...

2019-09-12 10:02:23 22372

原创 C和C++的头文件与JAVA中的import的区别

C/C++:头文件里放的是源代码#include <*.h>其实是将.h中的所有代码直接放在当前位置,即替换到#include <*.h>,相当于复制粘贴的操作。头文件中可以放函数,放常量,放类。JAVA:import里面是被编译过的*.class文件import的包由多个类组成,有且只有类,以类为单位。...

2019-07-29 18:34:53 921

转载 重写String和LinkedList源码

重写String JAVA源码如下:classs String{ private: char *m_data; //数据成员 public: String(const char *str = NULL) //普通构造函数 { if (str == NULL) { m_data = new char[1]; *m_data = '\0'; } else { int len = ...

2019-02-22 10:48:15 162

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除