arr

序列化

风格不统一 提交于 2020-03-12 14:44:23
1. <?php $arr = array("大理","昆明"); $json = json_encode($arr); ?> <script> var jsarr = <?php echo $json;?>; alert(jsarr[0]); </script> 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>第一php网提供的教程--向JS传递PHP数组</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"/></script> <script language=javascript> function get_php_arr(arr){ alert(eval(arr))

日期转换(时间戳转换成其他格式的日期形式)

你。 提交于 2020-03-12 14:15:18
在工作中经常会遇到数据格式转换的问题,很多时候后端传给你的数据不一定是你想要的形式。比如时间,后端可能直接给你了一个时间戳,我们需要自己转成需要的格式。这样的方法网上应该有很多,但是兼容性不一定很好,之前我用的一个方法,发现到Safari上出现乱码。今天就自己写了一个方法,方便以后调用了。 一个对象:包含一个对外的方法,方法中两个参数,一个是时间戳的值,另外一个是想要输出的日期格式。 1 /***** 2 功能:把时间戳转换成具体的日期格式 3 日期:2013/10/14 4 对外方法:oTime.getLocalTime(type,ux); 5 参数解释: 6 ux是时间戳; 7 type是想要的日期格式: 8 0(默认):2013-10-14 14:30 星期三 9 1:2010-10-20 10 2:2010年12月23日 11 3:星期三 12 4:14:30 13 5:14:30:33 14 6:2010/10/20 15 *****/ 16 var oTime = { 17 18 //把当前时间转换成时间戳 19 getUnixTime : function(){ 20 var dt = new Date(); 21 //var ux = Date.UTC(dt.getFullYear(),dt.getMonth(),dt.getDate(),dt.getHours()

循环引用

£可爱£侵袭症+ 提交于 2020-03-12 07:40:33
ARC已经出来很久了,自动释放内存的确很方便,但是并非绝对安全绝对不会产生内存泄露。导致iOS对象无法按预期释放的一个无形杀手是——循环引用。循环引用可以简单理解为A引用了B,而B又引用了A,双方都同时保持对方的一个引用,导致任何时候引用计数都不为0,始终无法释放。若当前对象是一个ViewController,则在dismiss或者pop之后其dealloc无法被调用,在频繁的push或者present之后内存暴增,然后APP就duang地挂了。下面列举我们变成中比较容易碰到的三种循环引用的情形。 (1)计时器NSTimer 一方面,NSTimer经常会被作为某个类的成员变量,而NSTimer初始化时要指定self为target,容易造成循环引用。 另一方面,若timer一直处于validate的状态,则其引用计数将始终大于0。先看一段NSTimer使用的例子(ARC模式): 1 #import <Foundation/Foundation.h> 2 @interface Friend : NSObject 3 - (void)cleanTimer; 4 @end 1 #import "Friend.h" 2 @interface Friend () 3 { 4 NSTimer *_timer; 5 } 6 @end 7 8 @implementation Friend 9 -

js函数(续)

亡梦爱人 提交于 2020-03-12 04:43:23
一、全局变量和局部变量 全局变量:当前js页面中均可使用的变量【 声明 在函数外面的变量】,整个js页面中均可以使用。 局部变量: 声明 在函数内部的变量,只能在函数内部使用。 eg: var a = 1; console.log(a); function test(){ console.log(a); //1 var b = 2 // c = 3; //c变量为全局变量,它的声明提前了【在页面的开始声明】 console.log(b); //2 } console.log(b); //错误提示:b is not defined 二、函数的使用 函数作为函数的参数使用:(可以作为 回调函数 使用) eg: function test(fun){ var msg = '我是test()函数中的变量msg'; fun(msg); } //函数test的调用 test(function(param){ console.log(param); //输出:我是test()函数中的变量msg }); 函数作为返回结果来使用: eg: function test(){ return function(){ console.log('我是test()函数的返回函数中的输出语句'); }; } //函数test的调用 test(); //test();的返回值为:function(){console

数组循环移动 空间复杂度O(1)

眉间皱痕 提交于 2020-03-11 17:02:35
---恢复内容开始--- 题目大意: 输入元素个数,输入数组,输入右移步数,输出结果; 基本思路: 可以把数组(从下标为0开始存储)看成两部分,分别是【0,n-step-1】,【n-step,n-1】,然后两部分分别倒置,然后将整个数组倒置,就得到了正确结果; 至于为什么是这样,你可以找个例子看看,然后理论证明上吗,哇,脑补一下就知道了。 代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h> int arr[100]; void Reverse(int l,int r){ int mid=(l+r)/2; for(int i=l;i<=mid;i++){ int tmp=arr[i]; arr[i]=arr[r+l-i]; arr[r+l-i]=tmp; } return; } int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&arr[i]); } int step; scanf("%d",&step); Reverse(0,n-step-1); Reverse(n-step,n-1); Reverse(0,n-1); for(int i=0;i<n;i++){ printf("%d ",arr[i]); } return 0

七大排序及其时间测试

孤街浪徒 提交于 2020-03-11 14:42:49
一、冒泡排序 public class MyBubbleSort { /* 冒泡排序: 时间复杂度:O(n) ~ O(n^2) 最好:顺序 + 标记 最坏: 逆序 稳定性: 稳定 空间复杂度: 常数空间 ---> O(1) */ public static void bubleSort ( int [ ] arr ) { int len = arr . length ; //len是未排序的元素个数 while ( len > 0 ) { //flag:true 已经有序 boolean falg = true ; //一轮冒泡排序 for ( int i = 0 ; i < len - 1 ; i ++ ) { if ( arr [ i ] > arr [ i + 1 ] ) { MySort . swap ( arr , i , i + 1 ) ; falg = false ; } } if ( falg ) { //为真就是有序,有序就跳出 break ; } len -- ; } } } 二、堆排序 public class MyHeapSort { public static void shifDownBig ( int [ ] arr , int parent , int sz ) { int child = parent * 2 + 1 ; while ( child

最小的K个数

怎甘沉沦 提交于 2020-03-10 19:38:49
输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例2: 输入:arr = [0,1,2,1], k = 1 输出:[0] 限制: 0 <= k <= arr.length <= 10000 0 <= arr[i] <= 10000 这道题应该是比较常见的一个问题了,还有一个镜像问题是最大的K个数。总结之后,大概有如下几种解题思路: 1. 排序法 最容易想到的方法,直接按升序对原数组排序,然后输出前K个数即可。时间复杂度依赖于所使用的排序算法,快排为O(nlogn)。 class Solution { public : vector < int > getLeastNumbers ( vector < int > & arr , int k ) { sort ( arr . rbegin ( ) , arr . rend ( ) ) ; vector < int > ans ( arr . begin ( ) , arr . begin ( ) + k ) ; return ans ; } } ; 2. 维护一个最小堆 只需要前K个最小的数,而不需要对全部数组排序,因此自然而然就可以想到建立一个最小堆

找到K个最接近的元素

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-10 10:35:36
2020-03-10 找到 K 个最接近的元素 给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之 差最小)的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样,优先选择数值较小的那个数。 说明: k 的值为正数,且总是小于给定排序数组的长度。 数组不为空,且长度不超过 10^4。 数组里的每个元素与 x 的绝对值不超过 10^4。 示例: 输入: [1,2,3,4,5], k=4, x=3 输出: [1,2,3,4] 输入: [1,2,3,4,5], k=4, x=-1 输出: [1,2,3,4] 题解: 思路1: 二分查找 + 双指针 先用二分查找找到与X最接近的下标i, 再从i往前后截取k成为新数组 再用双指针在最前最后判断去掉差值更大的那一边直到数组长度等于K var findClosestElements = function (arr, k, x) { const getIndex = (arr, x) => { // 二分查找找到最接近的i let l = 0; let r = arr.length - 1; let mid, i = -1; while (l < r) { mid = Math.floor((l + r) / 2); if (arr[mid] === x) { i = mid; break; } if

【Java数据结构+算法】递归-----八皇后问题(分析与实现)

陌路散爱 提交于 2020-03-10 07:53:52
一、八皇后问题描述 八皇后问题,是一一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯.贝瑟尔于1848年提出 : 在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击, 即:任意两个皇后都不能处于同一行、同一-列或同-斜线上 ,问有多少种摆法。 二、八皇后问题思路分析 (使用到回溯算法) (1)、第一个皇后先放第一行第- -列 (2)、第二个皇后放在第二行第一列、然后判断是否0K,如果不0K, 继续放在第二列、第三列、依次把所有列都放完,找到一个合适的位置 (3)、继续第三个皇后,还是第一列、第二列…直到第8个皇后也能放在一个不冲突的位置,算是找到了一个正确解。 (4)、当得到一个正确解时,在栈回退到上一一个栈时,就会开始回溯,即将第一个皇后,放到第一-列的所有正确解,全部得到。 (5)、然后回头继续第一个皇后放第二列,后面继续循环执行1,2,3的步骤。 说明:本来应该创建一-个二维数组来表示棋盘,但是实际上可以通过算法,用一个 一维数组 即可解决问题。 比如:arr = {0,4,7,5,2,6,1,3}: ①数组下标+1:表示行的位置 ②数组元素+1:表示列的位置 比如0:第一行第一列 4:第二行第五列 三、代码实现 package com . ycx . recursion ; import java . util . Queue ; public

java之char类型转换成int的问题

半世苍凉 提交于 2020-03-10 06:23:02
问题的起源 以下的一段代码是解决从数字0到n之间寻找k出现的次数,例如k=1,n=12,那么k出现的次数就是2次,12中也有1。 代码中间本人是将每一个数字作为一个字符串进行处理,对于多位数将其转换为字符串对应的char数组,在进行if语句判断时,永远出现false。 //寻找数字K出现的次数 public static int digitCounts ( int k , int n ) { int count = 0 ; //进行外运行,将n个数据都进行相对应的判断 for ( int i = 0 ; i <= n ; i ++ ) { //将每个n转换成对应的char数组 char [ ] charres = String . valueOf ( i ) . toCharArray ( ) ; //对于char数组进行遍历,寻找出现k的次数 for ( int j = 0 ; j < charres . length ; j ++ ) { //使用全局变量对相同的k进行累加判断出现的次数 if ( Integer . parseInt ( String . valueOf ( charres [ j ] ) ) == k ) { count ++ ; } } } return count ; } 寻找原因 如果直接创建char数组,在对其值进行输出时会看到数组依旧是数组输入的值