- 博客(34)
- 收藏
- 关注
原创 剑指 Offer 第八天
剑指 Offer 43. 1~n 整数中 1 出现的次数public int countDigitOne(int n) { int digit = 1, res = 0; int high = n / 10, cur = n % 10, low = 0; while(high != 0 || cur != 0) { if(cur == 0) res += high * digit; else if(cur == 1) res += high * di
2021-07-16 20:22:28
106
原创 剑指offer第七天
剑指 Offer 36. 二叉搜索树与双向链表dfs(cur):递归中序遍历终止条件:当前节点为空,直接返回递归左子树,dfs(cur.left)构建链表:当pre为空时,代表正在访问头节点,记为head当pre不为空时,修改双向节点引用,即pre.right = cur,cur.left=pre保存cur:更新 :pre=cur递归右子树treeToDoublyList(root)特殊处理:若root为空,直接返回初始化:空节点pre转化为双向链表:调用dfs构建循
2021-07-16 20:21:56
112
原创 剑指 Offer 第九天
剑指 Offer 46. 把数字翻译成字符串加了条件的青蛙跳格子public int translateNum(int num){ String s = String.valueOf(num); int a = 1,b = 1; for(int i = 2;i<=s.lengh();i++){ String tmp = s.substring(i-2,i); int c=tmp.compareTo("10")>=0 &&
2021-07-16 20:19:35
119
原创 剑指 Offer第六天
剑指 Offer 32 - II. 从上到下打印二叉树 II按层打印:BFS->队列的先入先出特性来实现每层打印到一行算法流程:特例处理:当根节点为空,则返回空列表初始化:打印结果res=[],包含根节点的队列queue=[root]BFS循环:当队列为空时跳出新建一个临时列表tmp,用于存储当前打印结果当前层循环打印:循环次数为当前层的节点数,即此时队列的长度:出队:队首元素出队,记为node;打印:将节点值添加至tmp尾部添加子节点:若左右子节点不为空,则加入队列
2021-07-10 17:22:52
66
原创 剑指offer第五天
剑指 Offer 22. 链表中倒数第k个节点思路:双指针:让快指针先走k步,这样快慢指针一起走,快指针走到尾部的时候,慢指针刚好走到了n-k处代码:class Solution { public ListNode getKthFromEnd(ListNode head, int k) { ListNode slow = head, fast = head; for(int i = 0; i < k; i++){ fast =
2021-07-09 21:30:56
67
原创 安卓面试之网络技术
1.网络框架对比和源码分析Volley特点基于httpURLconnection封装url图片加载框架,支持图片加载有缓存ACtivity结束时取消在此activity中调用的所有网络请求场景适合传输量小,数据请求频繁的场景不能进行大量数据操作,如上传下载,因为volley的请求和响应都是放到byte[]中okhttp特点基于NIO和Okio,请求处理速度更快IO是阻塞式,NIO是非阻塞式,okio是基于二者的更高效的数据流库IO面向流,NIO面向缓冲区
2021-07-08 15:17:26
227
原创 安卓技术——软件框架的搭建
1.新建工程,建立启动页面的活动,首先定义其布局页面<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#
2021-06-15 15:45:53
554
原创 动态规划1
1.62. 不同路径思路:看到向右向下就可以用动态规划的方法,考虑边界,再找到递推公式。优化的话,可以将二维数组转化为一位数组。public int uniquePaths(int m, int n) { int[][] dp = new int[m][n]; //第一列都是1 for (int i = 0; i < m; i++) { dp[i][0] = 1; } //第一行都是1 for (int i = 0;
2021-05-28 19:37:17
81
原创 剑指offer第四天
1.剑指 Offer 17. 打印从1到最大的n位数思路:最大的一位数是9,最大的两位数是99,因此可以推导出end = 10的n次方减一,步长为1做循环即可。代码:class Solution { public int[] printNumbers(int n) { int end = (int)Math.pow(10,n)-1; int[] res = new int[end]; for(int i=0;i<end;i++){
2021-05-27 16:34:59
60
原创 剑指 Offer第三天
1.剑指 Offer 13. 机器人的运动范围思路:设计到搜索题目,一般用广度优先(队列)或者深度优先(递归)来解决。数位之和计算:设一个数字x,将x对10取余可以求得其个位数,对x向下取整即向右移动一位,可以删除个位数得到十位数。 因此可以通过循环求得数位之和s int sums(int x) int s=0; while(x!=0){ s+=x%10; x=x/10; } return s;数位和
2021-05-26 11:00:01
71
原创 剑指offer刷题第二天
1.剑指 Offer 09. 用两个栈实现队列思路:先append是数据一定是存在栈底的,所以要删除的话,就必须要取出来,不能直接删,可以先将数据从栈中pop出来,然后Push到另一个栈中,这样就变成栈顶元素了,然后pop栈顶元素就可以了。增加尾部数据的话,直接就在第一个栈中加就行了。代码:class CQueue{ Stack<Integer> stack1; Stack<Integer> stack2; public CQueue(){
2021-05-25 12:12:27
92
原创 剑指offer刷题第一天
1.剑指 Offer 03. 数组中重复的数字方法一:哈希表法看到重复的数字,首先想到哈希表(set)记录数组中各个数字,具体方法是先新建一个hashset,然后遍历数组中的每一个数字num:当num在表中,则返回num,最后将Num添加到哈希表中。返回-1.因为本题中一定有重复数字,返回其他值也行。代码:class Solution { public int findRepeatNumber(int[] nums) { HashSet <Integer>
2021-05-24 16:10:22
76
原创 安卓学习之开发欧酷天气
1.功能需求和风天气注册:https://id.qweather.com/#/homepagegithub注册:https://github.com/tanglei1996/myweather/tree/main本地仓库远程连接:1.远程版本克隆到本地git clone https://github.com/tanglei1996/myweather.git2.将复制到的目录全部复制到上一层然后删除该文件夹3.将文件添加到版本控制中git add .4.本地提交git commit
2021-05-22 19:27:15
537
2
原创 安卓学习之Material Design
1.什么是material desing一套全新的界面设计语言,包含了视觉、运动、互动效果等特性。一言以蔽之,好看!2.Toolbar1.打开res/values/styles.xml文件,代码如下所示<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <
2021-05-21 21:13:34
425
2
原创 安卓学习之百度地图定位
1.基于位置服务的简介基于位置的服务简称 LBS:Location Based Service2.申请API Key1.登录你的百度账号,并打开http://developer.baidu.com/user/reg 这个网址,在这里填写一些注册信息即可2.接着访问http://lbsyun.baidu.com/apiconsole/key 这个地址,然后同意百度开发者协议3.填写 发布版SHA1和开发版SHA1:我们申请API Key所必须填写的一个字段,它指的是打包程序时所用签名文件的SHA1
2021-05-21 15:31:27
406
原创 安卓学习之服务
1.服务是什么服务(Service)是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要求长期运行的任务服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行服务并不是运行在一个独立的进程当中的,而是依赖于创建服务时所在的应用程序进程。当某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止运行2.多线程编程1.线程的基本用法方式1:继承thread类class MyThread extends
2021-05-21 13:08:11
399
2
原创 安卓学习之网络技术
1.webview的用法修改activity_main.xml中的代码<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <WebView android:id="@+id/web_view"
2021-05-21 08:53:45
161
3
原创 安卓学习之多媒体
1.使用通知1.通知的基本用法public class MainActivity extends AppCompatActivity implements View.OnClickListener { NotificationManager manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
2021-05-20 10:23:30
101
原创 安卓学习之内容提供器
1.内容提供器简介内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全。使用内容提供器是Android实现跨程序共享数据的标准方式2.运行时权限危险权限包括在程序运行时申请权限1.首先定义一个按钮,点击按钮就可以拨打电话<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android
2021-05-19 16:26:24
153
原创 安卓学习之持久化技术(数据库操作)
1.持久化技术简介让数据在瞬时状态和持久化状态进行转换的机制。主要包括文件存储、shareOreference存储以及数据库存储。2.文件存储1.将数据存储到文件中Context 类中提供了一个openFileOutput() 方法,可以用于将数据存储到指定的文件中这个方法接收两个参数,第一个参数是文件名,在文件创建的时候使用的就是这个名称,注意这里指定的文件名不可以包含路径,因为所有的文件都是默认存储到/data/data//files/目录下的。第二个参数是文件的操作模式,主要有两
2021-05-19 12:02:19
152
原创 安卓开发之广播机制
1.广播机制简介标准广播(normal broadcasts):完全异步执行,广播发出后,所有的广播接收器都会在同一时刻接收到这条广播消息有序广播 (ordered broadcasts):同步执行,同一时刻只有一个广播接收器收到,当执行完后再继续传递。优先级高的广播接收器可以先收到消息,还可以截断广播接收器。2.接收系统广播动态注册监听网络变化在代码中注册称为动态注册,在AndroidManifest.xml注册称为静态注册。1.新建一个BroadcastTest项目,然后修改Mai
2021-05-18 18:34:26
232
原创 安卓UI简单开发
1、常用UI组件1.1 TextViewmatch_parent:当前控件的大小和父布局一样wrap_content:当前控件的大小能够刚好包住里面的内容文字对齐方式:android:gravity=“center|top|bottom|left|right”文字大小:android:textSize=“24sp”文字颜色:android:textColor="#00ff00"1.2 Buttonandroid:textAllCaps="false" #禁止大写转换注册监听事
2021-05-18 15:10:31
1038
1
原创 安卓学习之Activity
一、安卓应用和开发环境简介1.安卓的系统特性与平台架构系统特性应用程序框架支持组件的重用和替换Dalvik虚拟机:专门未移动设备优化SQLite结构化的数据存储采用软件叠层方式构建平台架构图应用程序层(Application)应用程序框架层(Application Framework)函数库(libraries)安卓运行时(android runtime):核心库集+Dalvik虚拟机linux内核2.环境搭建JDK安装与配置下载JDK安装JDK环境变
2021-05-17 20:31:49
187
原创 ssm框架整合完整版
一、引言通过建立一个简单的图书管理系统,来对ssm框架进行整合,理解其具体的原理。本实验从最基本的数据库见表到最后实现前端的增删改查,附有详细的步骤,对一些细节做了描述。环境要求:IDEAMySQL 5.7.19Tomcat 8Maven 3.6二、创建数据库1、创建数据库之前记得登陆数据库,打开cmd,输入 mysql -h localhost -P3306 -u root -p也可以手动打开,前提是下载安装好了mysql!!!2.下载SQLyog,登陆进去,创建数据库并建立新
2021-05-15 21:43:24
1423
1
原创 java框架学习之spring
1.什么是springSpring 是轻量级的开源的 JavaEE 框架Spring 有两个核心部分:IOC 和 Aop 。IOC:控制反转,把创建对象过程交给 Spring 进行管理 ;Aop:面向切面,不修改源代码进行功能增强Spring 特点(1)方便解耦,简化开发(2)Aop 编程支持(3)方便程序测试(4)方便和其他框架进行整合(5)方便进行事务操作(6)降低 API 开发难度2. helloworld1.下载安装下载完后的目录2.打开idea,创建一个普通的ja
2021-05-13 19:54:38
123
原创 基于IDEA的Maven学习
1.Maven1.作用在web开发中,有大量的jar包,都是手动导入,为了自动导入,Maven诞生了。Maven的核心思想:约定大约配置2.下载安装http://maven.apache.org/download.cgi3.配置4.阿里云镜像配置5.本地仓库在安装目录下建立 maven-repo文件夹在配置文件里面替换为6.在IDEA中使用Maven7.在IDEA中配置Tomcat8.pom.xml是maven的核心配置文件<!-- 在build配置res
2021-05-13 14:10:38
141
2
原创 java框架学习之mybatis
1.获取英文资料:https://github.com/mybatis/mybatis-3/releases中文资料:https://mybatis.org/mybatis-3/index.htmlmaven仓库:<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency> <groupId>org.mybatis</groupId>
2021-05-13 14:05:06
61
原创 java前端学习之javascript
1.引入可以再html的sciipt标签内引入也可以在script标签内的src路径外部引入js文件<head> <meta charset="UTF-8"> <title>Title</title> <script src="css/qj.js"> 此处为外部引入 alert('hello'); 标签引入 </script></head>2.数据类型js不
2021-05-10 20:27:33
126
原创 java前端学习之CSS3
1.认识CSS1.1 什么是CSS层叠样式表(Cascading Style Sheets)作用:美化网页字体、颜色、边距、高度、背景等等1.2 语法选择器{声明1;声明2;声明3;}1.3 导入方式内部样式:在标签中编写style属性的css代码外部样式:CSS方式行内样式:在标签元素中编写一个style属性优先级:就近原则2.选择器作用:选择页面上的某一个或者一类元素2.1 基本选择器1.标签选择器 :选择一类标签2.类选择器:选择所有class属性一致的标签3.id选
2021-05-10 09:59:26
81
原创 java前端学习之HTML5
1.初识HTMLHTMLHyper Text Markup Language(超文本标记语言) 优势:跨平台W3C:World Wide Web Consortium(万维网联盟)W3C标准:结构化标记语言(HTML、XML)表现行为标准语言(CSS)行为标准(DOM、ECMAScript)2.网页基本标签## 标题标签 <h1>一级标题</h1> <h2>二级标签</h2> 最多六级标签 ## 段落标签 <p
2021-05-09 21:17:07
86
原创 javaweb项目笔记一:贪吃蛇游戏
效果图源码1.存放数据模块package com.tanglei.snake;import javax.swing.*;import java.net.URL;/** * @author tanglei * @create 2021-05-08 14:56 * 存放外部数据 */public class Data { //头部的图片 URL:定位图片地址 public static URL headURL = Data.class.getResource("/st
2021-05-08 20:48:45
672
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人