prism

Android 判断连接的wifi是否能访问网络

限于喜欢 提交于 2020-04-09 16:00:07
如果只是想检测网络是否连接,则直接使用 isNetworkConnected() 如果想检测网络连通性(是否能访问网络),则 isNetworkConnected() 与 isNetworkOnline() 结合使用。 private boolean isNetworkConnected() { ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); return (networkInfo != null && networkInfo.isConnected()); } public boolean isNetworkOnline() { Runtime runtime = Runtime.getRuntime(); try { Process ipProcess = runtime.exec("ping -c 3 www.baidu.com"); int exitValue = ipProcess.waitFor(); Log.i("Avalible", "Process:"+exitValue); return

Leetcode: 面试题13. 机器人的运动范围

六月ゝ 毕业季﹏ 提交于 2020-04-09 14:22:30
题目 题目链接:https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子? 示例 1 : 输入:m = 2 , n = 3 , k = 1 输出: 3 示例 2 : 输入:m = 3 , n = 1 , k = 0 输出: 1 提示: 1 <= n , m <= 100 0 <= k <= 20 解题记录 矩阵搜索问题。通常可使用 深度优先搜索(DFS) 或 广度优先搜索(BFS) 解决 深度优先 深度优先,顾名思义通过向一个方向搜索到最后,达到最深再搜索其他分支,搜索的方式可以采用递归的方式: class Solution { int M , N , K , counter = 0 ; public int movingCount ( int m , int n , int k ) { M = m ;

Java实现 LeetCode 691 贴纸拼词(DFS+map记录)

假装没事ソ 提交于 2020-04-09 11:11:02
691. 贴纸拼词 我们给出了 N 种不同类型的贴纸。每个贴纸上都有一个小写的英文单词。 你希望从自己的贴纸集合中裁剪单个字母并重新排列它们,从而拼写出给定的目标字符串 target。 如果你愿意的话,你可以不止一次地使用每一张贴纸,而且每一张贴纸的数量都是无限的。 拼出目标 target 所需的最小贴纸数量是多少?如果任务不可能,则返回 -1。 示例 1: 输入: [“with”, “example”, “science”], “thehat” 输出: 3 解释: 我们可以使用 2 个 “with” 贴纸,和 1 个 “example” 贴纸。 把贴纸上的字母剪下来并重新排列后,就可以形成目标 “thehat“ 了。 此外,这是形成目标字符串所需的最小贴纸数量。 示例 2: 输入: [“notice”, “possible”], “basicbasic” 输出: -1 解释: 我们不能通过剪切给定贴纸的字母来形成目标“basicbasic”。 提示: stickers 长度范围是 [1, 50]。 stickers 由小写英文单词组成(不带撇号)。 target 的长度在 [1, 15] 范围内,由小写字母组成。 在所有的测试案例中,所有的单词都是从 1000 个最常见的美国英语单词中随机选取的,目标是两个随机单词的串联。 时间限制可能比平时更具挑战性。预计 50

Java反射学习和反射的应用场景干货都在这里

和自甴很熟 提交于 2020-04-09 11:09:02
文章目录 一、Java反射定义 二、Java反射机制实现 1、Class对象获取 2、获取class对象的摘要信息 3、获取class对象的属性、方法、构造函数等 三、反射的应用场景 1、动态代理 2、自定义注解实现日志管理 写在前面:Java反射是我们做项目中必备的技能,本篇文章将重新学习反射的基本用法、反射的应用场景等。 一、Java反射定义 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为Java的反射机制 二、Java反射机制实现 1、Class对象获取 在一个JVM中,一种类,只会有一个类对象存在。 public class Person { private String name ; private int age ; private String address ; } // 省略get、set方法 private void setCardId ( String id ) { System . out . println ( id ) ; } 获取类对象有3种方式 Class.forName() Person.class new Person().getClass() //第一种方式 通过对象getClass方法 Person person =

红黑树插入时的自平衡

三世轮回 提交于 2020-04-09 11:08:40
红黑树插入时的自平衡 红黑树实质上是一棵自平衡的二叉查找树,引入带颜色的节点也是为了方便在进行插入或删除操作时,如果破坏了二叉查找树的平衡性能通过一系列变换保持平衡。 红黑树的性质 每个节点要么是红色,要么是黑色 根节点必须是黑色 两个红色节点不能相连 从根节点出发到达任意叶子节点经过的黑色节点个数相同 红黑树的数据结构 红黑树实质上是一颗二叉查找树,左子树的值小于根节点的值,右子树的值大于根节点的值。 public class RedBlackTree { private static int BLACK = 1 ; private static final int RED = 0 ; private static Node root ; private static class Node { private int color = RED ; private int data ; private Node left ; private Node right ; private Node parent ; Node ( int data ) { this . data = data ; } } } 红黑树的插入 插入的节点默认是红色的(要不然全是黑色节点它也满足红黑树的定义,不过就没意义了); 由于红黑树是一颗二叉查找树,所以它的插入可以使用递归(先不考虑破坏红黑树的结构) /*

lambda从精通到陌生

半腔热情 提交于 2020-04-09 11:08:27
1.为什么用lambda 简化我们的操作 举个老栗子 创建一个线程 new Thread ( new Runnable ( ) { @Override public void run ( ) { System . out . println ( "hh" ) ; } } ) . start ( ) ; 以前我们快速创建一个线程要这样 现在用lambda new Thread ( ( ) - > System . out . println ( "lambda-->hh" ) ) . start ( ) ; 一个更重要的原因是Java 以后为了更好的函数式编程 2.lambda怎么用 2.1 lambda的使用场景 lambda只能用在函数式接口,函数式接口就是一个接口里面只有一个抽象方法 * @author Arthur van Hoff * @see java . lang . Thread * @see java . util . concurrent . Callable * @since JDK1 . 0 * / @FunctionalInterface public interface Runnable { /** * When an object implementing interface <code>Runnable</code> is used * to

浅谈STM32串口通信(一)基本介绍和一个字节传输的实现

自古美人都是妖i 提交于 2020-04-09 11:04:54
文章目录 0 传输引脚 1 传输一个字节 1.1 发送一个字节 1.2 接收一个字节 2 代码 2.1 配置 2.2 发送一个字节 2.3 接收一个字节 0 传输引脚 串口收发共需要三根线 其中,TX脚为发送引脚, RX脚为发送引脚, GND为地, 作为电平的参考. 如果A发B收, 只需要连接两条线: A的TX连接B的RX, 以及GND相连即可 1 传输一个字节 1.1 发送一个字节 首先, 从传输一个字节开始说起. 抛开奇偶校验,多个停止位的情况, 假设, 我们设置一帧数据有十位, 里边包含一个起始位, 八个数据位, 还有一个停止位. 那么,我们发送一个字节, 只需要一次传输. 我们以传输0x01为例, 它的时序图如下 那怎么把这个字节变成时序呢? 发送器会帮我们完成. 只要配置好相应的波特率和停止位等即可. 发送器在起始位之后, 加入0x01对应的八个数据位, 最后加上停止位, 即可完成发送一个字节的时序. (0x01会通过发送数据寄存器(TDR), 存放到移位寄存器, 在每个时钟沿触发移位). 1.2 接收一个字节 我们以接收0x01为例(假设接收来自1.1的时序).首先我们必须设置波特率, 停止位位数, 跟接收到的时序保持一致. 那接收这边怎么知道对方是时序是什么意思呢? 波特率一致. 假设波特率为9600, 那么发送一个位需要的时间位1/9600 秒.

.NET Core 3 WPF MVVM框架 Prism系列之命令

我的未来我决定 提交于 2020-04-09 09:41:33
原文: .NET Core 3 WPF MVVM框架 Prism系列之命令 本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的命令的用法 一.创建DelegateCommand命令 # 我们在上一篇 .NET Core 3 WPF MVVM框架 Prism系列之数据绑定 中知道prism实现数据绑定的方式,我们按照标准的写法来实现,我们分别创建Views文件夹和ViewModels文件夹,将MainWindow放在Views文件夹下,再在ViewModels文件夹下面创建MainWindowViewModel类,如下: xaml代码如下: < Window x:Class ="CommandSample.Views.MainWindow" xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:prism ="http://prismlibrary.com/" xmlns:i ="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:d ="http://schemas

Leetcode: 面试题 01.07. 旋转矩阵

耗尽温柔 提交于 2020-04-09 04:51:34
题目 链接:https://leetcode-cn.com/problems/rotate-matrix-lcci 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到? 示例 1 : 给定 matrix = [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ] , 原地旋转输入矩阵,使其变为 : [ [ 7 , 4 , 1 ] , [ 8 , 5 , 2 ] , [ 9 , 6 , 3 ] ] 示例 2 : 给定 matrix = [ [ 5 , 1 , 9 , 11 ] , [ 2 , 4 , 8 , 10 ] , [ 13 , 3 , 6 , 7 ] , [ 15 , 14 , 12 , 16 ] ] , 原地旋转输入矩阵,使其变为 : [ [ 15 , 13 , 2 , 5 ] , [ 14 , 3 , 4 , 1 ] , [ 12 , 6 , 8 , 9 ] , [ 16 , 7 , 10 , 11 ] ] 解题记录 方法1 先水平翻转,在根据对角线翻转,两次翻转获得旋转 90 度的效果,这里翻转也可选择垂直翻转,对角翻转的对角线不同: class Solution { public static void rotate ( int [ ]

我的第一个java小程序

喜欢而已 提交于 2020-04-09 04:23:55
** 我的第一个java小程序—学生管理系统 ** 在经过了对JavaSE一个多星期的学习,终于写出了一点东西,激动之余,赶紧写下了我的第一个博客,用于记录学习的过程。 首先面对一个空白的项目,构建一个思维导图是必要的,这将大大提高代码的编写效率。例如面对此时的学生管理系统,我构建了如下导图 首先设计主界面排版,因为目前接触的知识较少,我就用switch方法来实现交互功能,代码如下 main方法 public class main { public static void main ( String [ ] args ) { ArrayList < stduent > al = new ArrayList < stduent > ( ) ; System . out . println ( "----------欢迎来到学生管理系统-----------" ) ; System . out . println ( "1 添加学生" ) ; System . out . println ( "2 删除学生" ) ; System . out . println ( "3 修改学生" ) ; System . out . println ( "4 查看所有学生" ) ; System . out . println ( "5 退出" ) ; while ( true ) {