Android-Studio配置运行小米便签
1.下载Android Studio官网地址:Android Studio
安装教程:Android Studio 安装教程
默认下载即可,选定好SDK的下载地址即可。
1.1配置 Gradle 地址(建议)在下载之后,可以配置一下Gradle的地址,这样在后续import项目时,出错后,方便修改。
在Settings -> Build -> Build Tools -> Gradle中可以修改Gradle的仓库地址
2.项目 clone小米便签项目仓库地址: 小米便签
git clone 或者直接直接下载压缩包都可
3. import 项目此处不能新建项目,直接把文件放入Android Studio,会有你意想不到的报错~
使用import的方式,通过Gradle 的方式编译整个项目。
在sync的过程中,会有各种各样、莫名其妙的报错,部分报错的解决办法,见第5部分的报错解决
出现如下图所示即为,sync成功
3.1 Gradle 项目gradle是基于Apache Maven概念的项目自动化构建开源工具。他是使用一种基于groovy的 特定领域语言来声明项目配 ...
赎金信
赎金信赎金信
此题采用数组解法,只需分别遍历两个数组,记录各元素出现次数即可。
12345678910111213141516171819202122class Solution { public boolean canConstruct(String ransomNote, String magazine) { int[] res = new int[26]; if(ransomNote.length() > magazine.length() ) return false; char[] maga = magazine.toCharArray(); for(int i = 0;i<magazine.length();i++){ res[maga[i] - 'a']++; } char[] ran = ransomNote.toCharArray(); for(int i = 0; i<ransomNot ...
四数之和
四数之和四数之和
思路分析此题是从四个数组中寻找相加为0的四个数,其中会有重复出现可能,所以可以使用 Map 哈希法来解决。
key 存放前两个数组a+b的值,value存储a+b出现的次数。
先遍历前两个数组,存储a+b的值和出现的次数。
再遍历剩下两个数组,寻找 0-c-d 是否在map中出现,使 res加上 出现的次数,即可获得答案。
123456789101112131415161718192021class Solution { public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) { Map<Integer,Integer> map = new HashMap<>(); // 寻找 a+b for(int a : nums1){ for(int b : nums2){ int sum = a+b; map.put(sum, m ...
SpringBoot跨域访问配置
SpringBoot跨域访问应用场景当我们在进行前后端开发时,经常会需要在前端接收来自后端的不同端口传输的信息,此时便需要用到跨域访问。
跨域跨域是指跨域名的访问,以下情况都属于跨域:
域名不同 www.baidu.com 与 www.taobao.com
域名相同,端口不同 www.baidu.com:8080 与 www.baidu.com:8081
二级域名不同 shawni.jd.com 与 ran.jd.com
Config 配置类解决跨域问题,既可以在前端,也可以在后端,我们在实际开发场景中,通常在后端配置一个跨域配置类,指定可跨域请求的路径。
123456789101112131415161718@Configurationpublic class CorsConfig { // 当前跨域请求最大有效时长。这里默认1天 private static final long MAX_AGE = 24 * 60 * 60; @Bean public CorsFilter corsFilter() { UrlBasedCorsConfig ...
SpringBoot集成SwaggerUI
SpringBoot集成Swagger3应用场景在开发时,我们经常会面对对接口的测试。而 Swagger 是一个在线api框架,能够在线测试我们的api接口。同时是支持RESTfui 风格接口测试。
依赖导入123456<!--swagger--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version></dependency>
Config 配置类12345678910111213141516171819202122232425262728293031323334353637@Configuration@EnableOpenApipublic class swaggerConfig { /** * 创建API应用 * apiInfo() 增加API相关信息 ...
两数之和(集合版)
两数之和 - 集合版两数之和
此题目中,需要判断某数是否存在,且返回下标,我们可以使用 Map 来进行构造。
在遍历数组时,判断target-nums[i] 的值是否存在于map中,若在,则直接返回,不在,则把该数以及下标加入map中。
1234567891011121314151617181920class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer,Integer> map = new HashMap<>(); int[] res = new int[2]; if(nums == null || nums.length == 0) return res; for(int i=0;i<nums.length;i++){ int temp = target - nums[i]; if(map.containsKey(temp)){ ...
快乐数
快乐数题目地址:快乐数
题目中,提到了 无限循环 ,而每一次需要判断sum是否重复,我们在判断是否有重复元素时,可以使用 Set 集合。
使用Set 集合,对每一次求得sum进行判断,直到sum==1为止。
1234567891011121314151617181920212223class Solution { public boolean isHappy(int n) { Set<Integer> set = new HashSet<>(); while( n!= 1 && !set.contains(n)){ set.add(n); n = getSum(n); } return n == 1; } //求一个数各个位置平方和 public int getSum(int n ){ int sum = 0; while(n>0){ sum += (n ...
两个数组的交集
两个数组的交集两个数组的交集
1.数组解法创建一个数组存储出现过的数字,遍历两个数组,遇到值就 ++ 。
有重复的元素的值指向的值会 > 2
1234567891011121314151617181920212223242526272829303132class Solution { public int[] intersection(int[] nums1, int[] nums2) { Arrays.sort(nums1); Arrays.sort(nums2); //求出数组中最大值 int max = nums1[nums1.length-1] > nums2[nums2.length-1] ? nums1[nums1.length-1] : nums2[nums2.length-1]; int[] res = new int[max+10]; for(int i : nums1){ if(res[i] == 0) //避免重复元素出现 ...
有效的字母异位词
有效的字母异位词有效的字母异位词
Hash 集合
数组
HashSet
HashSet 是基于 HashMap 开发出来的集合,允许有 null 值,但不允许有重复元素存在。
HashMap
HashMap 是一个散列表,存储结构为 key--value。
Hash 表的底层原理Hash 表存储结构,存储的是值用过 hash 算法算出来的 HashCode ,将 HashCode 值存储在Hash表中,所以hash表是无序的,查找时间消耗为O(1);
Hash 碰撞当有两个元素要插入 hash表 同一位置时,此时称这种情况为 hash碰撞
解决方法:
拉链法:即设立 hash表 时,使表长度尽可能满足需求。
线性探测:当碰撞时,后者向下探寻到没有被使用的空间,存储在第一个寻找到的空间中。
题目解析此题就是验证两个字符串是不是由相同的字母根据不同顺序构成。使用一个判断数组即可。
12345678910111213141516171819202122232425class Solution { public boolean isAnagram(String s, Strin ...
螺旋矩阵
螺旋矩阵螺旋矩阵
螺旋矩阵,此类题目考察的是对变化过程的模拟。
上层 由左往右到最后一格前
右层 从上往下
下层 由右往左
左层 由下往上
12345678910111213141516171819202122232425262728293031323334class Solution { public int[][] generateMatrix(int n) { int[][] res = new int[n][n]; int loop = 0; int start = 0; int num = 1; int i,j; while(loop++ < n/2){ // 模拟上层从左到右 for(j = start ; j< n-loop ; j++){ res[start][j] = num++; } //模拟右侧从上到下 for(i = ...