start

面试题29:顺时针打印矩阵

本秂侑毒 提交于 2020-03-26 08:44:18
/** * @Author: Allen * @Version:v1.00 * @CreateData:2018年4月2日 上午9:31:45 *输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, *例如,如果输入如下矩阵: *1 2 3 4 *5 6 7 8 *9 10 11 12 *13 14 15 16 * 则依次打印出数字 * 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. */import java.util.ArrayList; public class Solution { public ArrayList<Integer> printMatrix(int [][] matrix) { if(matrix==null){ return null; } ArrayList<Integer> list=new ArrayList<Integer>(); int rows = matrix.length; int colums = matrix[0].length; int start=0; while(colums>start*2 && rows > start*2){ list.addAll(printMatrixInCircle(matrix,rows,colums,start)); start++; } return

再译《A *路径搜索入门》之三

故事扮演 提交于 2020-03-25 03:51:31
3 月,跳不动了?>>> ■ 继续 搜索 Continuing the Search 要 继续 搜索,我 们简单 地 选择在 开启列表中具有最小 F 值 的方 块 。然后,我 们用选择 方 块 作 以下 事情 : To continue the search, we simply choose the lowest F score square from all those that are on the open list. We then do the following with the selected square: 1. 把 它从 开启列表 取出,并加入到 关 闭 列表 。 1.Drop it from the open list and add it to the closed list. 2. 检查 所有的相 邻 方 块 。忽略那些 在 关 闭 列表 里 或不可行走的( 墙 ,水或其他非法地形),如果它 们还不在 开启列表中 , 加方 块 到 开启列表 。将 选 定方 块作为 新方 块的 “父”。 2. Check all of the adjacent squares. Ignoring those that are on the closed list or unwalkable (terrain with walls, water, or other

javascript如何提取字符串

天涯浪子 提交于 2020-03-20 10:07:56
JavaScript截取字符串方法详解 1 substring() (1)用于提取字符串中介于两个指定下标之间的字符。语法:stringObject.substring(start,stop) start:必需。一个非负的整数,规定要提取的子串在第一个字符在 stringObject 中的位置。 stop;可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省 略该参数, 那么返回的子串会一直到字符串的结尾。 (2)返回值 一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度 为 stop 减 start。(下标从0开始) substring() 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。如果参数 start 与 end 相等,那么该方法返 回的就是一个空串(即长度为 0 的字符串)。如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。 重要事项:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。 实例1:<script type="text/javascript"> var str="Hello world!" document.write(str

js 字符串常用API

╄→гoц情女王★ 提交于 2020-03-18 17:34:21
length 获取字符串的长度 charAt() 获取下标对应的字符,也可以使用数组形式 字符串[下标] indexOf() 查找某字符串对应的下标,如果找不到返回-1 lastIndexOf() 查看某个字符串最后一次出现的下标 , 如果找不到返回 -1 练习 : 声明变量来保存字符串,如果不含有@,打印非法的邮箱,否则打印合法的邮箱 toUpperCase() 英文字母转大写 toLowerCase() 英文字母转小写 slice(start,end) 截取字符串 , start开始的下标,end结束的下标,不包含end本身;如果end为空截取到最后,如果为负数表示倒数。 substr(start,count) 截取字符串 , start开始的下标 , count截取的长度 , 如果 count为空截取到最后 , 如果 start为负值表示倒数 substring(start,end) 截取字符串 , start开始的下标,end结束的下标,不包含end本身,如果end为空截取到最后;如果下标为负数,自动转为0 split(sep) 将字符串按照指定的字符切割成数组元素 , sep 表示指定的字符 来源: https://www.cnblogs.com/codexlx/p/12518262.html

Python之旅.第七章.异常处理

血红的双手。 提交于 2020-03-18 11:53:50
/*--> */ /*--> */ 一、异常处理 1 、什么是异常 异常是错误发生的信号,程序一旦出错,如果程序中还没有相应的处理机制,那么该错误就会产生一个异常抛出来,程序的运行也随之终止。 2 、一个异常分为三部分: 1 、异常的追踪信息 2 、异常的类型 3 、异常的值 3 、异常的分类: 1 、语法异常: 这类异常应该在程序执行前就改正 print('start....') x=1 x+=1 if print('stop....') 2 、逻辑上的异常 4 、常见逻辑上的异常 IndexError l=['a','b'] l[100] KeyError d={'a':1} d['b'] AttributeError: class Foo: pass Foo.x import os os.aaa ZeroDivisionError 1 / 0 FileNotFoundError f=open('a.txt','r',encoding='utf-8') ValueError: I/O operation on closed file. f=open('a.txt','r',encoding='utf-8') f.close() f.readline() ValueError: invalid literal for int() with base 10: 'aaaaa' int

RHEL7 网卡启动失败Failed to start LSB: Bring up/down解决方法

喜夏-厌秋 提交于 2020-03-14 10:26:19
网卡配置文件修改完之后,重启网卡 报错:启动失败Failed to start LSB: Bring up/down 查了一下资料可能是network和系统自带的NetworkManager管理工具冲突了 关掉NetworkManager之后再重启network就可以了 来源: 51CTO 作者: Villa07 链接: https://blog.51cto.com/10546589/2478167

截取中文字符串的js方法

纵然是瞬间 提交于 2020-03-12 20:13:45
有时在显示某段文字的时候,可能会太长,影响我们页面的显示效果。如果仅是英文,那么我们可以用String.substring(start, end)函数就已经够用了。但是通常我们都会遇到既有英文,又有汉字的情况。而汉字是占用2个字节的,如果用String.substring(start, end)截取字符串的话,会发现汉字截取后比英文截取后个数虽然相同,但是长度还是长出去不少(具体要视字符个数来决定)。 为了解决这个问题昨天写了根据字节数截取字符串的函数。 具体使用很简单,跟String.subString(start, end)一样使用就可。比如:var str = "诶必塞第衣爱抚即"; var str1 = str.subCHStr(2, 2); var str2 = str.subCHString(2, 4); alert(str1 + " == " + str2); Code 1 Code 2 // 计算字符串长度 3 String.prototype.strLen = function () { 4 var len = 0 ; 5 for ( var i = 0 ; i < this .length; i ++ ) { 6 if ( this .charCodeAt(i) > 255 || this .charCodeAt(i) < 0 ) len += 2 ; else

关于线程的进一步介绍

你离开我真会死。 提交于 2020-03-11 08:28:55
之前对线程进行过简单介绍,现在更进一步介绍一下。 在创建线程使用第二种方法,即给Thread()类传入一个实现了Runnable接口的对象时,可能创建的两个线程用的是同一个对象,就存在共享资源。两个线程同时对其进行操作,而且顺序不定,存在安全问题。例: class Resource implements Runnable { public int i; public Resource(int _i){ i = _i; } public void run(){ while(true){ if (i>0){ i--; System.out.println(Thread.currentThread().getName()+" "+i); } else break; } } } public class TestThread{ public static void main(String[] args){ Resource m = new Resource(100); Thread t1 = new Thread(m); Thread t2 = new Thread(m); t1.start(); t2.start(); } } 在这个例子中,线程t1和t2同时访问m的资源,都执行m对应对象的run()方法,即对i进行自减。但是两个线程的执行顺序不能确定,因此执行的结果不能确定

Java Web Start Guide

走远了吗. 提交于 2020-03-07 20:33:19
#概述 ##Java Web Start技术 Java Web Start帮助应用与Web浏览器进行整合。当用户点击具有特殊启动文件的链接(JNLP文件),通过这个文件使浏览器启动Java Web Start,对应用进行自动下载、缓存、提示用户运行使用Java为技术基础的应用程序。用户可以对以后的提示进行关闭。 从技术的立场,Java Web Start有若干个关键收益,是用来部署应用程序极具吸引力的平台: Java Web Start只能通过Java(TM) Platform Standard Edition进行创建和启动程序。因此,单独的应用程序可以通过Web服务部署到各种各样的平台上,包括Windows 98/NT/2000/ME/XP(译者注:同样适用于Window 7,10),Linux(译者注:OpenJDK无法正常运行,原因未知),和Solaris的系统环境。(译者注:Mac没有进行尝试)。java平台已经被证明是一个非常强大的,生产力,和表现力的开发平台,由于最小化开发和测试成本导致显著的成本节约。 Java Web Start支持多个版本的Java Platform Standard Edition。因此,应用可以请求特定版本的Java开发平台,例如Java SE 1.5.0。应用可以同时运行在不同的平台而不产生冲突,如果客户端系统上并没有安装所需求的版本

JS中的常用数组方法

无人久伴 提交于 2020-03-03 19:14:27
JS中的常用数组方法 concat() 连接两个或更多的数组,并返回结果。 join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 pop() 删除并返回数组的最后一个元素 push() 向数组的末尾添加一个或更多元素,并返回新的长度。 reverse() 颠倒数组中元素的顺序。 shift() 删除并返回数组的第一个元素 slice() 从某个已有的数组返回选定的元素 sort() 对数组的元素进行排序 splice() 删除元素,并向数组添加新元素。 toSource() 返回该对象的源代码。 toString() 把数组转换为字符串,并返回结果。 toLocaleString() 把数组转换为本地数组,并返回结果。 unshift() 向数组的开头添加一个或更多元素,并返回新的长度。 valueOf() 返回数组对象的原始值 一、slice(start,end) *从start开始截取到end但是不包括end *返回值为截取出来的元素的集合 *原始的数组不会发生变化 var arr = [1,2,3,4,5,6,7,"f1","f2"]; console.log(arr.slice(2)); //[3, 4, 5, 6, 7, "f1", "f2"] console.log(arr.slice(2,3)); //[3]; console.log(arr