- 博客(35)
- 收藏
- 关注
原创 移动端开发必备:安卓Android/苹果iphone主流机型尺寸
移动开发必备图表移动端设备分辨率开发过程中离不开UI绘制,自然需要理解px、dpi、dp、sp等概念。本人是在开发横竖屏布局自适应的过程中,突然想到,如果对各个测试机/平板尺寸分辨率有一定认识,必然有助于调整布局、碎片、控件以及各项资源的比例与位置。话不多说,参考网上现有资料,整理如下。安卓端-Android苹果端-iphone有需自取~参考博文https://blog.youkuaiyun.com/a18339063397/article/details/81482073参考百度文库http
2021-08-03 17:03:37
2109
原创 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
535
原创 Git工具常用命令/使用教程
Git程序员必备版本控制工具,不会的就学一下还不会Git的同学,点一下就会,图文讲解Git完整命令手册地址GIT CHEAT SHEET中文对照版本
2020-12-19 19:20:11
233
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
118
原创 剑指-把数组排成最小的数-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
141
原创 剑指-复杂链表的复制-深拷贝/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
259
原创 剑指-树的子结构-套娃/记忆
题目描述输入两棵二叉树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
98
原创 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
205
原创 剑指-二维数组的查找-旋转数组/缩小范围
题目描述在一个 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
114
原创 剑指-数据流中的中位数-优先队列/大小堆
题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。思路1.存列表排序
2020-09-16 16:56:25
132
原创 剑指-链表中环的入口结点-快慢指针/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
125
原创 剑指-和为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
128
原创 剑指-和为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
114
原创 剑指-数组中数字出现的次数-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
153
原创 剑指-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
134
原创 剑指- 数组中出现次数超过一半的数字-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
189
原创 遍历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
216
原创 2020秋招小米软件开发笔试题
题型结构10道单选10道多选2道编程单选和多选题,难度不高偏基础。编程题1.判断密码是否符合要求:给一行密码:每个密码用空格分隔(1)同时具有大写、小写、符号、数字,则输出0;(2)长度不在8-120之间,则输出1;(3)类型不符合输出,即不符合(1)条件,则输出2;2.leetcode 79 原题:单词搜索给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的
2020-09-08 22:21:45
1479
原创 剑指-合并两个排序链表-双指针
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路创建单链表时,一般都会建一个伪头结点,也称哑结点(dummy node)。如此是为了所有节点都保证有前驱结点。关于哑结点的使用:可以引用一个cur指针指向dum,操作cur进行移动来完成所求链表的创建,最后返回dum.next即所求链表。此题思路是使用双指针遍历两链表,根据大小关系确定节点添加顺序,两节点指针交替前进,直至遍历完毕。代码/*public class ListNode {
2020-09-08 16:06:17
144
原创 剑指-反转链表-栈+递归
题目描述输入一个链表,反转链表后,输出新链表的表头。思路一、栈。把链表节点一个个入栈,当全部入栈完之后再一个个出栈,出栈的时候在把出栈的结点串成一个新的链表。二、递归。终止条件是当前节点或者下一个节点==null在函数内部,改变节点的指向,也就是 head 的下一个节点指向 head 递归函数。代码一、栈public ListNode reverseList(ListNode head) { Stack<ListNode> stack = new Stack<&
2020-09-08 10:06:13
141
原创 剑指-简单-二进制中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
86
原创 剑指-简单-青蛙跳台阶(不同于斐波)
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路台阶数跳法11223448516632……简单明了,区别于只能挑1,2级台阶的跳法(此法为斐波那契),递归即可得答案。代码public class Solution { public int JumpFloorII(int target) { if(target==0) {
2020-09-04 00:10:36
97
原创 剑指-简单-二叉树的深度
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。思路后序遍历(DFS) 和 层序遍历(BFS) 两种解法。代码一、递归(DFS)/ 后序树的深度和其左(右)子树的深度之间的关系。显然,此树的深度 等于 左子树的深度 与 右子树的深度 中的 最大值 +1 。class Solution { public int maxDepth(TreeNode root) { if(root == null
2020-09-02 15:09:13
94
原创 剑指-简单-不用加减乘除做加法
剑指-简单-不用加减乘除做加法题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路(1) 两数做与(&)运算之后二进制保留同为 1 的位置,也就是需要进位的位置。(2) 两数做异或(^)运算之后二进制保留除了同为 1 以外 1 的位置。(3) 循环将两数与(&)运算之后进位的结果再和两数异或(^)运算的结果做异或运算。(4) 直到二进制没有位置进位,则运算完成。代码class Solution { public int add(
2020-09-02 14:48:23
119
原创 字节跳动客户端开发校招提前批一面
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
952
原创 JVM和内存管理
一、JAVA程序设计基本概念1.1 JVMClassLoader包括bootstrap classloader(启动类加载器,加载核心API),ExtClassLoader(加载扩展API),AppClassLoader(加载自定义类,即CLASSPATH设置目录中的Class)。ClassLoader加载流程运行一个程序时,JVM启动,运行bootstrap classloader,然后...
2020-02-19 04:04:21
180
原创 从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
1551
原创 python全栈工程师学习笔记:基础语法篇(二)
1.字符串转义字符用“\”来表示特殊字符,回车,换行等s = "let's go" #嵌套引号s = 'let\'s go' #转义两者打印一致。格式化字符串按照一定格式打印或填充1.利用百分号(%)前有几个%占位符,后括号内有要填充几个参数,且按顺序。2.利用format函数“{}”来占位,可以编号“{0}”,也可以带标识“{name=}”NO...
2019-12-26 21:46:03
194
原创 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
242
原创 数据结构:二叉查找树的实现
二叉查找树二叉树是节点最多只有两个子树的树状结构,这两个子树可以称为左子树和右子树。可是对于普通的二叉树,并没有足够的信息来提示我们左子树和右子树存储的是什么,我们没有办法进行高效的信息查找。为了提高查找效率,我们会把二叉树升级为二叉查找树(Binary Search Tree)。二叉查找树是符合以下定义的二叉树:1.节点左子树中全部的节点键值都比该节点要小。2.节点右子树中全部...
2019-09-25 20:01:23
320
原创 Python编程-使用pycharm2018过程中所遇问题合集
1.函数方法疯狂标黄,并不影响代码运行,强迫症难以自拔。函数标黄原因:python解释器版本与IDE版本不兼容,上述函数是简单的pushbutton事件绑定,所用的IDE是pycharm2018,解释器是Anaconda3,对应python3.7版本,connect函数这样写是可以用的。解决标黄方法:1.简单粗暴左边小灯泡,选择自动忽略。2.IDE与解释器版本适配,这个需要求助大佬了。...
2019-09-17 09:11:41
778
原创 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
22643
原创 C和C++的头文件与JAVA中的import的区别
C/C++:头文件里放的是源代码#include <*.h>其实是将.h中的所有代码直接放在当前位置,即替换到#include <*.h>,相当于复制粘贴的操作。头文件中可以放函数,放常量,放类。JAVA:import里面是被编译过的*.class文件import的包由多个类组成,有且只有类,以类为单位。...
2019-07-29 18:34:53
1002
转载 重写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
211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人