#设置git git config --global http.proxy localhost:9527 #设置go http_proxy=localhost:9527 go get -v golang.org/x/crypto/ssh
Category Archives: Language
CMD常用命令17常用软件注册为Widows服务
1、Apache注册为Widows服务
httpd -k install
2、MySQL注册为Widows服务
mysqld --install MySQL --defaults-file="D:\MySQL\MySQL Server 5.1\my.ini"
3、PostgreSQL注册为Widows服务
pg_ctl.exe register -N "postgresql-8.4" -D "D:/PostgreSQL/8.4/data" -w
4、SVN注册为Widows服务
sc create svnserve binPath= "\"D:\Subversion\bin\svnserve.exe\" --service -r \"D:\Subversion\repository\"" displayname= "Subversion Service" depend= Tcpip start= auto sc start svnserve sc stop svnserve sc delete svnserve
5、redis注册为Widows服务
#loglevel 分为debug, notice, warning三级 redis-server.exe --service-install D:\Database\Redis2.8\db\redis.windows.conf --loglevel notice redis-server --service-start redis-server --service-stop redis-server --service-uninstall
6、mongodb注册为Widows服务
mongod --dbpath=D:\Database\MongoDB3\db --logpath=D:\Database\MongoDB3\log\mongo.log --port 27027 --noauth --install -serviceName MongoDB01 --serviceDisplayName MongoDB01 net start MongoDB01
MongoDB副本集(Java)
还是蛮简单的,驱动把任务全部做掉了
package com.djhu.mongodb.test; import java.util.Arrays; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.ServerAddress; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; public class ReplTest { private static void testInsert() { MongoClient mongoClient = new MongoClient(Arrays.asList( new ServerAddress("172.16.172.4", 27017), new ServerAddress("172.16.172.4", 27018), new ServerAddress("172.16.172.4", 27019))); MongoDatabase db = mongoClient.getDatabase("test"); MongoCollection collection = db.getCollection("person"); Document doc = new Document(); doc.put("name", "tuzi"); doc.put("age", 27); doc.put("sex", "Female"); collection.insertOne(doc); } public static void main(String[] args) { testInsert(); } }
如果遇到下面的错误,是因为用了localhost作为replSet的地址,重新config一下就好了
Caused by: java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:519) at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50) at com.mongodb.connection.SocketStream.open(SocketStream.java:58) ... 3 more Exception in thread "main" com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches PrimaryServerSelector. Client view of cluster state is {type=REPLICA_SET, servers=[{address=localhost:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused: connect}}, {address=localhost:27018, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused: connect}}, {address=localhost:27019, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused: connect}}, {address=localhost:27020, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused: connect}}] at com.mongodb.connection.BaseCluster.createTimeoutException(BaseCluster.java:370) at com.mongodb.connection.BaseCluster.selectServer(BaseCluster.java:101) at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.<init>(ClusterBinding.java:75) at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.<init>(ClusterBinding.java:71) at com.mongodb.binding.ClusterBinding.getWriteConnectionSource(ClusterBinding.java:68) at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:175) at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:141) at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:72) at com.mongodb.Mongo.execute(Mongo.java:747) at com.mongodb.Mongo$2.execute(Mongo.java:730) at com.mongodb.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:482) at com.mongodb.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:277) at com.djhu.mongodb.test.ReplTest.testInsert(ReplTest.java:28) at com.djhu.mongodb.test.ReplTest.main(ReplTest.java:33)
Redis分片(Jedis)
Redis的分片技术一般是通过客户端或代理来实现的
1、用jedis实现分片的时候,服务端不需要做任何配置即可
package com.djhu.redis.test; import java.util.ArrayList; import java.util.List; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.ShardedJedis; public class JedisShardTest { public static void main(String[] args) { List<JedisShardInfo> jedisShardInfoList = new ArrayList<JedisShardInfo>(); jedisShardInfoList.add(new JedisShardInfo("172.16.172.4", 6379)); jedisShardInfoList.add(new JedisShardInfo("172.16.172.4", 6380)); ShardedJedis sharded = new ShardedJedis(jedisShardInfoList); sharded.set("key01", "a"); sharded.set("key02", "b"); sharded.set("key03", "c"); sharded.set("key04", "d"); sharded.set("key05", "e"); System.out.println(sharded.get("key03")); } }
2、用Jedis连接池实现分片
package com.djhu.redis.test; import java.util.ArrayList; import java.util.List; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.ShardedJedisPool; import redis.clients.jedis.JedisPoolConfig; import redis.clients.util.Hashing; import redis.clients.util.Sharded; public class JedisSharedFactory { // 最大可用连接数,默认值为8,如果赋值为-1则表示不限制 private static int MAX_TOTAL = 256; // 最大空闲连接数,默认值为8 private static int MAX_IDLE = 32; // 最小空闲连接数 private static int MIN_IDLE = 4; // 最大等待连接毫秒数,默认值为-1表示永不超时 private static int MAX_WAIT = 3000; // 连接redis超时时间 private static int TIMEOUT = 3000; // true表示验证连接 private static boolean TEST_ON_BORROW = true; //连接池 private static ShardedJedisPool jedisPool = null; public static void initJedisPool() { try { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(MAX_TOTAL); config.setMaxIdle(MAX_IDLE); config.setMinIdle(MIN_IDLE); config.setMaxWaitMillis(MAX_WAIT); config.setTestOnBorrow(TEST_ON_BORROW); List<JedisShardInfo> jedisShardInfoList = new ArrayList<JedisShardInfo>(); jedisShardInfoList.add(new JedisShardInfo("172.16.172.4", 6379)); jedisShardInfoList.add(new JedisShardInfo("172.16.172.4", 6380)); jedisPool = new ShardedJedisPool(config, jedisShardInfoList,Hashing.MURMUR_HASH,Sharded.DEFAULT_KEY_TAG_PATTERN); } catch (Exception e) { e.printStackTrace(); } } public synchronized static ShardedJedis getConnection() { try { if (jedisPool != null) { ShardedJedis resource = jedisPool.getResource(); return resource; } else { return null; } } catch (Exception e) { e.printStackTrace(); return null; } } public static void returnResource(final ShardedJedis jedis) { if (jedis != null) { jedis.close(); } } public static void main(String[] args) { initJedisPool(); ShardedJedis redis = getConnection(); redis.set("key10", "j"); redis.set("key11", "k"); redis.set("key12", "l"); redis.set("key13", "m"); redis.set("key14", "n"); System.out.print(redis.get("key12")); returnResource(redis); } }
Jedis连接Redis3 Cluster
1、源码如下
package com.djhu.redis.test; import java.util.Set; import java.util.HashSet; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.JedisCluster; public class JedisClusterTest { public static void main(String[] args) { Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>(); jedisClusterNodes.add(new HostAndPort("172.16.172.4", 6379)); jedisClusterNodes.add(new HostAndPort("172.16.172.4", 6380)); jedisClusterNodes.add(new HostAndPort("172.16.172.4", 6381)); jedisClusterNodes.add(new HostAndPort("172.16.172.4", 6382)); jedisClusterNodes.add(new HostAndPort("172.16.172.4", 6383)); jedisClusterNodes.add(new HostAndPort("172.16.172.4", 7384)); //JedisCluster cluster = new JedisCluster(jedisClusterNodes,3000,1000); JedisCluster cluster = new JedisCluster(jedisClusterNodes); cluster.set("key10", "j"); cluster.set("key11", "k"); cluster.set("key12", "l"); cluster.set("key13", "m"); cluster.set("key14", "n"); System.out.println(cluster.get("key12")); } }
2、如果遇到下面错误,主要是因为建立cluster时,ip用了127.0.0.1。用其他ip重建一下cluster,就可以解决了。
Exception in thread "main" redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException: Too many Cluster redirections? at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:34) at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:68) at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:85) at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:68) at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:85) at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:68) at redis.clients.jedis.JedisClusterCommand.run(JedisClusterCommand.java:29) at redis.clients.jedis.JedisCluster.set(JedisCluster.java:75)
Jedis使用连接池(Java)
package com.djhu.redis.test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class JedisFactory { // 最大可用连接数,默认值为8,如果赋值为-1则表示不限制 private static int MAX_TOTAL = 256; // 最大空闲连接数,默认值为8 private static int MAX_IDLE = 32; // 最小空闲连接数 private static int MIN_IDLE = 4; // 最大等待连接毫秒数,默认值为-1表示永不超时 private static int MAX_WAIT = 3000; // 连接redis超时时间 private static int TIMEOUT = 3000; // true表示验证连接 private static boolean TEST_ON_BORROW = true; //连接池 private static JedisPool jedisPool = null; public static void initJedisPool(String IP, int port, String password) { try { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(MAX_TOTAL); config.setMaxIdle(MAX_IDLE); config.setMinIdle(MIN_IDLE); config.setMaxWaitMillis(MAX_WAIT); config.setTestOnBorrow(TEST_ON_BORROW); jedisPool = new JedisPool(config, IP, port, TIMEOUT, password); } catch (Exception e) { e.printStackTrace(); } } public synchronized static Jedis getConnection() { try { if (jedisPool != null) { Jedis resource = jedisPool.getResource(); return resource; } else { return null; } } catch (Exception e) { e.printStackTrace(); return null; } } public static void returnResource(final Jedis jedis) { if (jedis != null) { jedis.close(); } } public static void main(String[] args) { initJedisPool("localhost",6379,null); Jedis redis = getConnection(); redis.select(1); //redis.set("key01", "a"); //redis.set("key02", "b"); //redis.set("key03", "c"); System.out.print(redis.dbSize()); returnResource(redis); } }
Redis入门之增删改查(Java)
1、下载驱动
jedis驱动源码地址
jedis驱动下载地址
2、测试代码
package com.djhu.redis.test; import java.util.HashMap; import java.util.List; import java.util.Map; import redis.clients.jedis.Jedis; public class ConnectionTest { public static Jedis getConnection(String ip, int port) { Jedis jedis = new Jedis(ip, port); //jedis.auth("password"); return jedis; } public static void cleanAll(Jedis jedis) { jedis.flushDB(); } public static void stringTest(Jedis jedis) { jedis.set("key01", "a"); jedis.set("key02", "b"); jedis.set("key03", "c"); jedis.mset("key04", "d", "key05", "e", "key06", "f"); jedis.del("key04"); System.out.println("key01 is " + jedis.get("key01")); System.out.println("key04 is " + jedis.get("key04")); } public static void mapTest(Jedis jedis) { Map<String, String> map = new HashMap<String, String>(); map.put("username", "hansen"); map.put("usersex", "male"); jedis.hmset("mapkey01", map); map.put("username", "neohope"); map.put("usersex", "male"); jedis.hmset("mapkey02", map); map.put("username", "tuzi"); map.put("usersex", "female"); jedis.hmset("mapkey03", map); List<String> rsmap = jedis.hmget("mapkey03", "username", "usersex"); System.out.println("query for hmget(\"mapkey03\", \"username\", \"usersex\") is " + rsmap); jedis.hdel("mapkey02", "usersex"); System.out.println("query for hmget jedis.hmget(\"mapkey02\", \"username\") is "+jedis.hmget("mapkey02", "username")); System.out.println("query for jedis.hmget(\"mapkey02\", \"usersex\") is " + jedis.hmget("mapkey02", "usersex")); System.out.println("query for jedis.hlen(\"mapkey01\") is " + jedis.hlen("mapkey01")); System.out.println("query for jedis.exists(\"mapkey01\") is " + jedis.exists("mapkey01")); System.out.println("query for jedis.hkeys(\"mapkey01\") is " + jedis.hkeys("mapkey01")); System.out.println("query for jedis.hvals(\"mapkey01\") is " + jedis.hvals("mapkey01")); } public static void listTest(Jedis jedis) { jedis.lpush("keylist01", "a"); jedis.lpush("keylist01", "b"); jedis.lpush("keylist01", "c"); System.out.println("keylist01 is " + jedis.lrange("keylist01", 0, -1)); } public static void setTest(Jedis jedis) { jedis.sadd("keyset01", "01"); jedis.sadd("keyset01", "02"); jedis.sadd("keyset01", "03"); jedis.sadd("keyset01", "04"); jedis.sadd("keyset01", "05"); System.out.println("query for jedis.smembers(\"keyset01\") is " + jedis.smembers("keyset01")); System.out.println("query for jedis.sismember(\"keyset01\", \"06\") is " + jedis.sismember("keyset01", "06")); System.out.println("query for jedis.scard(\"keyset01\") is " + jedis.scard("keyset01")); } public static void sortTest(Jedis jedis) { jedis.rpush("keylist02", "16"); jedis.lpush("keylist02", "8"); jedis.lpush("keylist02", "4"); jedis.lpush("keylist02", "2"); jedis.lpush("keylist02", "1"); System.out.println("keylist02 is " + jedis.lrange("keylist02", 0, -1)); jedis.sort("keylist02"); System.out.println("after sort keylist02 is " + jedis.lrange("keylist02", 0, -1)); } public static void main(String[] args) { Jedis jedis = getConnection("localhost", 6379); cleanAll(jedis); stringTest(jedis); mapTest(jedis); listTest(jedis); sortTest(jedis); setTest(jedis); jedis.close(); } }
Hadoop增删改查(Java)
需要的jar包在hadoop里都可以找到,下面的例子中,至少需要这些jar包:
commons-cli-1.2.jar commons-collections-3.2.1.jar commons-configuration-1.6.jar commons-io-2.4.jar commons-lang-2.6.jar commons-logging-1.1.3.jar guava-11.0.2.jar hadoop-auth-2.7.1.jar hadoop-common-2.7.1.jar hadoop-hdfs-2.7.1.jar htrace-core-3.1.0-incubating.jar log4j-1.2.17.jar protobuf-java-2.5.0.jar servlet-api.jar slf4j-api-1.7.10.jar slf4j-log4j12-1.7.10.jar
代码如下:
package com.neohope.hadoop.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HDFSTest { static Configuration hdfsConfig; static { hdfsConfig = new Configuration(); hdfsConfig.addResource(new Path("etc/hadoop/core-site.xml")); hdfsConfig.addResource(new Path("etc/hadoop/hdfs-site.xml")); } // 创建文件夹 public static void createDirectory(String dirPath) throws IOException { FileSystem fs = FileSystem.get(hdfsConfig); Path p = new Path(dirPath); try { fs.mkdirs(p); } finally { fs.close(); } } // 删除文件夹 public static void deleteDirectory(String dirPath) throws IOException { FileSystem fs = FileSystem.get(hdfsConfig); Path p = new Path(dirPath); try { fs.deleteOnExit(p); } finally { fs.close(); } } // 重命名文件夹 public static void renameDirectory(String oldDirPath, String newDirPath) throws IOException { renameFile(oldDirPath, newDirPath); } // 枚举文件 public static void listFiles(String dirPath) throws IOException { FileSystem hdfs = FileSystem.get(hdfsConfig); Path listf = new Path(dirPath); try { FileStatus statuslist[] = hdfs.listStatus(listf); for (FileStatus status : statuslist) { System.out.println(status.getPath().toString()); } } finally { hdfs.close(); } } // 新建文件 public static void createFile(String filePath) throws IOException { FileSystem fs = FileSystem.get(hdfsConfig); Path p = new Path(filePath); try { fs.createNewFile(p); } finally { fs.close(); } } // 删除文件 public static void deleteFile(String filePath) throws IOException { FileSystem fs = FileSystem.get(hdfsConfig); Path p = new Path(filePath); try { fs.deleteOnExit(p); } finally { fs.close(); } } // 重命名文件 public static void renameFile(String oldFilePath, String newFilePath) throws IOException { FileSystem fs = FileSystem.get(hdfsConfig); Path oldPath = new Path(oldFilePath); Path newPath = new Path(newFilePath); try { fs.rename(oldPath, newPath); } finally { fs.close(); } } // 上传文件 public static void putFile(String locaPath, String hdfsPath) throws IOException { FileSystem fs = FileSystem.get(hdfsConfig); Path src = new Path(locaPath); Path dst = new Path(hdfsPath); try { fs.copyFromLocalFile(src, dst); } finally { fs.close(); } } // 取回文件 public static void getFile(String hdfsPath, String locaPath) throws IOException { FileSystem fs = FileSystem.get(hdfsConfig); Path src = new Path(hdfsPath); Path dst = new Path(locaPath); try { fs.copyToLocalFile(false, src, dst, true); } finally { fs.close(); } } // 读取文件 public static void readFile(String hdfsPath) throws IOException { FileSystem hdfs = FileSystem.get(hdfsConfig); Path filePath = new Path(hdfsPath); InputStream in = null; BufferedReader buff = null; try { in = hdfs.open(filePath); buff = new BufferedReader(new InputStreamReader(in)); String str = null; while ((str = buff.readLine()) != null) { System.out.println(str); } } finally { buff.close(); in.close(); hdfs.close(); } } public static void main(String[] args) throws IOException { System.setProperty("HADOOP_USER_NAME", "hadoop"); // createDirectory("hdfs://hadoop-master:9000/usr"); // createDirectory("hdfs://hadoop-master:9000/usr/hansen"); // createDirectory("hdfs://hadoop-master:9000/usr/hansen/test"); // renameDirectory("hdfs://hadoop-master:9000/usr/hansen/test","hdfs://hadoop-master:9000/usr/hansen/test01"); // createFile("hdfs://hadoop-master:9000/usr/hansen/test01/hello.txt"); // renameFile("hdfs://hadoop-master:9000/usr/hansen/test01/hello.txt","hdfs://hadoop-master:9000/usr/hansen/test01/hello01.txt"); // putFile("hello.txt","hdfs://hadoop-master:9000/usr/hansen/test01/hello02.txt"); // getFile("hdfs://hadoop-master:9000/usr/hansen/test01/hello02.txt","hello02.txt"); // readFile("hdfs://hadoop-master:9000/usr/hansen/test01/hello02.txt"); listFiles("hdfs://hadoop-master:9000/usr/hansen/test01/"); } }
Xcode7文档下载地址
具体的下载地址,可以在这里查到
https://developer.apple.com/library/downloads/docset-index.dvtdownloadableindex
对于Xcode7,对应文档的下载地址为
watchOS 2.0 Documentation
iOS 9.0 Documentation
OS X 10.11 Documentation
Xcode 7 Documentation
已知问题
1、文档下载安装后可以使用,但Xcode无法识别。
2、从apple官网下,还是太慢了
Prolog求解Sudoku(七周七语言版本)
1、代码实现
:- use_module(library(clpfd)). :- use_module(library(lists)). %求解函数 sudoku(Puzzle, Solution) :- length(Puzzle, L), Size is floor(sqrt(L)), %计算矩阵大小 Solution = Puzzle, Puzzle ins 1..Size, %输入必须符合规范(比如9阶Sudoku,元素必须在1到9之间) slice(Puzzle, Rows, Size, 'row'), %将输入拆分为行, slice(Puzzle, Cols, Size, 'col'), %列, slice(Puzzle, Squares, Size, 'square'), %方格。 valid(Rows), %每行,每列,每个方格不可重复 valid(Cols), valid(Squares), pretty_print(Rows). %输出 %校验,一个List不可重复 valid([]). valid([Head | Tail]) :- all_different(Head), valid(Tail). %List截取 sublist_length([], _). sublist_length([Head | Tail], Length) :- length(Head, Length), sublist_length(Tail, Length). %List拼接 insert_into_slice(Item, Values, X, Y) :- nth0(X, Values, Bucket), nth0(Y, Bucket, Item). %按行分割坐标 slice_position('row', Size, I, X, Y) :- X is I // Size, Y is I mod Size. %按列分割坐标 slice_position('col', Size, I, X, Y) :- X is I mod Size, Y is I // Size. %按方格分割坐标 slice_position('square', Size, I, X, Y) :- Size_Sqrt is floor(sqrt(Size)), X is (I mod Size // Size_Sqrt) + (Size_Sqrt * (I // (Size * Size_Sqrt))), Y is (I mod Size_Sqrt) + (Size_Sqrt * ((I mod (Size * Size_Sqrt)) // Size)). %数据分割函数 slice(Puzzle, Slice, Size, Type) :- slice(Puzzle, Slice, Size, Type, 0). slice(_, Slice, Size, _, I) :- I is Size * Size, length(Slice, Size), sublist_length(Slice, Size). slice([Head | Tail], Slice, Size, Type, I) :- slice_position(Type, Size, I, X, Y), insert_into_slice(Head, Slice, X, Y), I1 is I + 1, slice(Tail, Slice, Size, Type, I1). %输出函数 pretty_print([Head | Tail]) :- print(Head), nl, pretty_print(Tail).
2、测试一下
1 ?- sudoku([5, 3, _, _, 7, _, _, _, _, 6, _, _, 1, 9, 5, _, _, _, _, 9, 8, _, _, _, _, 6, _, 8, _, _, _, 6, _, _, _, 3, 4, _, _, 8, _, 3, _, _, 1, 7, _, _, _, 2, _, _, _, 6, _, 6, _, _, _, _, 2, 8, _, _, _, _, 4, 1, 9, _, _, 5, _, _, _, _, 8, _, _, 7, 9], Solution). [5,3,4,6,7,8,9,1,2] [6,7,2,1,9,5,3,4,8] [1,9,8,3,4,2,5,6,7] [8,5,9,7,6,1,4,2,3] [4,2,6,8,5,3,7,9,1] [7,1,3,9,2,4,8,5,6] [9,6,1,5,3,7,2,8,4] [2,8,7,4,1,9,6,3,5] [3,4,5,2,8,6,1,7,9] false.