精华内容
下载资源
问答
  • lua判断一个表是否为空

    千次阅读 2018-11-24 01:32:06
    a 是空表") else print("a 不是空表") end 答案可能出乎你的意外,最后打印的是:a不是空表。因为table是引用变量,所以这里比较的是a的地址和匿名table的地址,所以是不相等的。 2、还有人可能...

    1、有人会直接用表与{}比较

    local a = {}
    
    if a == {} then
        print("a 是空表")
    else 
        print("a 不是空表")
    end

    答案可能出乎你的意外,最后打印的是:a不是空表。因为table是引用变量,所以这里比较的是a的地址和匿名table的地址,所以是不相等的。

    2、还有人可能用table.maxn()

    local a = {key = 1}
    
    if table.maxn(a) == 0 then
        print("a 是空表")
    else 
        print("a 不是空表")
    end
    
    
    --[[
    a 是空表
    ]]--

    这个时候明明a不是空的但是用table.maxn却返回0,这是因为table.maxn返回的是数组形式的表的长度。

    3、其实这里可以用到lua再带的函数next

    local a = {}
    
    if next(a) == nil then
        print("a 是空表")
    else 
        print("a 不是空表")
    end
    
    --[[
    
    a 是空表
    ]]--

     

    展开全文
  • 如何判断一个链表是否为空

    万次阅读 2018-05-07 22:24:19
    L指向表头结点的指针,分别写出带有头结点的单链表、单项循环链表和双向循环链表判的条件单链表 NULL==L->next单向循环 L==L->next双向循环 L==L->next&&L==L->...
    L为指向表头结点的指针,分别写出带有头结点的单链表、单项循环链表和双向循环链表判空的条件
    单链表 NULL==L->next
    单向循环 L==L->next
    双向循环 L==L->next&&L==L->prior
    展开全文
  • 题目:判断一个链表是否为回文结构给定一个链表的头节点head,请判断该链表是否为回文结构。例如:1 ->2 -> 1,返回true。1 -> 2 -> 2 -> 1,返回true。15 -> 6 -> 15,返回true。1 -> 2 -&...

    题目:判断一个链表是否为回文结构

    给定一个链表的头节点head,请判断该链表是否为回文结构。

    例如:1 ->2 -> 1,返回true。1 -> 2 -> 2 -> 1,返回true。15 -> 6 -> 15,返回true。1 -> 2 -> 3,返回 false 。

    链表结构:

    class Node{
        int value;
        Node next;
    
        public Node(int val){
            this.value = val;
        }
    }

    进阶:如果链表长度为 N ,时间复杂度达到O(N) ,额外空间复杂度达到 O(1)。

    法一:借助辅助空间,使用栈

    思路:

    将链表 List 节点依次压入栈中,再依次弹出节点 node ;将 List 从头节点 head 开始比较,一旦发现不同则返回true;当head 为空时【比较结束】返回true。

    3d1914f8dcc46a11ab531bc99355da48.png

    图1 使用栈的思路

    Code:

    public boolean isPalindrome(Node head){
        Stack<Node> stack = new Stack<Node>();
        Node cur = head;
        while(cur != null){ //压栈
            stack.push(cur);
            cur = cur.next;
        }
        while(head != null){
            if(head.value != stack.pop().value)
                return false;
            head = head.next;
        }
        return true;
    }

    时间复杂度:需要遍历整个 List ,所以 T(n) = O(n) 。

    空间复杂度:由于需要保存 List 的所有节点,所以 S(n) = O(n) 。

    法二、快慢指针法

    看到这个标题,思考一下能否不用保存整个 List 去解决这道题?

    根据回文的特性,回文 List 必然是关于中间的对称轴对称的,如果从中间开始比较,是否可以用原先一半的空间来解决它? ——Yes.

    思路:

    1. 快指针 A 一次走 2 步,慢指针 B 一次走 1 步;当 A 走到 List 末尾时, B 刚好到中点;
    2. B 将后半部分遍历并压入栈中;
    3. A 再从头开始遍历,每遍历一个,栈 pop 一个进行比较。
    4. 某一步不相等 => false;遍历结束后且之前未返回 => true 。

    Code:

    public boolean isPalindrome2(Node head){    
        if(head == null || head.next == null) //空 or 仅有一个node的List是回文串
            return true;
        Node fast = head;
        Node slow = head; 
        while(fast.next != null && fast.next.next != null ){
            slow = slow.next; //最终到mid处
            fast = fast.next.next; //最终到end处
        }
        Stack<Node> stack = new Stack<Node>();
        while(slow != null){
            stack.push(slow);
            slow = slow.next; //继续从mid遍历到end
        }
        while(!stack.isEmpty()){
            if(head.value != stack.pop().value)
                return false;
            head = head.next;
        }
        return true;
    }

    时间复杂度:需要遍历整个 List ,所以 T(n) = O(n) 。

    空间复杂度:仅需要保存 List 的后半部分节点,相比法一少了一半,但是去除系数,S(n) = O(n) 。

    法三、快慢指针升级版

    法二我们已经用到了快慢指针,能否借助它们,实现彻底不用 O(N) 级别的辅助空间??

    —— Yes.

    首先我们能找到 List 的中点,让 List 一分为二,并让后半部分逆序;

    接着前半部分从前往后,后半部分从后往前遍历,边遍历便比较。

    如此,两个 node 的空间即解决了问题。

    思路

    1. 快指针 A 一次走 2 步,慢指针 B 一次走 1 步;当 A 走到 List 末尾时, B 刚好到中点;
    2. 将中点的 next 指向 null ,右部分逆序;
    3. 两个 list 都从首开始遍历比较,直到结束。
    4. 得到 true / false 的结果后,记得将原结构恢复 。

    细节

    用 length-1 来计算:奇数个节点,中点指向null ;偶数个节点,慢指针会来到中点的前一个位置。如下图:

    1167e39f9525d1173b354cf24efdb1ca.png

    图2 让中点指向null

    code

    public boolean isPalindrome3(Node head){
        if(head == null || head.next == null)
            return true;
        Node n1 = head;
        Node n2 = head;
        while(n2.next != null && n2.next.next!=null){
            n1 = n1.next;
            n2 = n2.next.next;
        }
        n2 = n1.next; //n2 -> 右半部分第一个node
        n1.next = null; //mid.next -> null
    
        // convert right part  局部结构:n1 -> n2 -> n3 -> ni -> ...
        Node n3 = null;
        while(n2 != null){
            n3 = n2.next; // save n2的 next node
            n2.next = n1; // 改变n2指向
            n1 = n2; //移动n1
            n2 = n3; //移动n2
        }
    
        n3 = n1; //此时n2为空,n1为last node ,用n3记录下来便与恢复结构 
        n2 = head; //n2 为left part first node
        boolean res = true; //保存结果,最后才返回
    
        //check 回文
        while(n1 != null && n2 != null){
            if(n1.value != n2.value){
                res = false;
                break;
            }
            n1 = n1.next;
            n2 = n2.next;
        }
    
        //recover List
        n1 = n3.next;
        n3.next = null;
        while(n1 != null){
            n2 = n1.next;
            n1.next = n3;
            n3 = n1;
            n1 = n2;
        }
    
        return res;
    
    }

    时间复杂度:需要遍历整个 List ,所以 T(n) = O(n) 。

    空间复杂度:仅仅用到了两个额外空间,S(n) = O(1) 。

    法三的注意点:不能直接得到结果后立刻返回,要记得把原结构恢复;反转链表的操作要细心。

    展开全文
  • VBA中没有专门的属性或函数可以判断工作表是否为空白工作表,可以使用自定义函数返回指定工作表是否为空工作表知识点:利用工作表函数CountA统计工作表已使用区域的非空单元格数:COUNTA函数功能是返回参数列表...

    大家好,我们今日继续讲解VBA代码解决方案的第57讲内容:判断工作表是否为空表。在实际的工作中,我们要常常判断某个工作表是否为空的,那么在VBA中是如何能做到这一点呢?

    VBA中没有专门的属性或函数可以判断工作表是否为空白工作表,可以使用自定义函数返回指定工作表是否为空工作表

    知识点一:利用工作表函数CountA统计工作表已使用区域的非空单元格个数:COUNTA函数功能是返回参数列表中非空的单元格个数。利用函数 COUNTA 可以计算单元格区域或数组中包含数据的单元格个数。

    知识点二:我们可以自定义一个函数,利用CountA统计工作表已使用区域的非空单元格个数,如果这个数值为0,那么这个工作表就是空的。

    首先看看我们的自定义函数,如下面的代码所示。

    Function MyIsBlankSht(Sh As Variant) As Boolean

    If TypeName(Sh) = "String" Then Set Sh = Worksheets(Sh)

    If Application.CountA(Sh.UsedRange.Cells) = 0 Then

    MyIsBlankSht = True

    End If

    End Function

    代码解析:

    自定义MyIsBlankSht函数包含一个Variant变量类型的参数,代表工作表名称或者对象名称。如果指定的工作表为空工作表,则该函数返回True。

    第2行代码使用TypeName函数判断参数Sh是否为字符串类型("String"),如果是字符串,则将以该字符串作为名称的工作表赋值给变量Sh。

    第3行代码通过工作表函数CountA统计工作表已使用区域的非空单元格个数,如果统计结果为0,则表示该工作表为空工作表。

    我们看看上述自定义函数在实际中的利用:有了上述的自定义函数,现在就可以像使用VBA函数一样使用自定义的MyIsBlankSht函数,如下面的代码我们要首先判断一下某个工作表是否为空,如果为空,那么删除它。

    Sub MyDelBlankSht()

    Dim Sh As Worksheet

    Application.DisplayAlerts = False

    i = 1

    For Each Sh In ThisWorkbook.Sheets

    If MyIsBlankSht(Sh) Then Sh.Delete: MsgBox "删除" & i & "个工作了": i = i + 1

    Next

    Application.DisplayAlerts = True

    MsgBox "共删除" & i - 1 & "个工作!"

    End Sub代码解析:

    使用自定义的MyIsBlankSht函数删除工作簿中所有空工作表。

    第3行代码将Application对象的DisplayAlerts属性设置为False,使删除时不显示系统警告对话框。

    第5行到第7行代码,使用For Each...Next语句遍历所有工作表,使用自定义的MyIsBlankSht函数判断是否为空表,如果为空表则使用Delete方法删除。

    注意 自定义MyIsBlankSht函数仅仅判断工作表单元格区域内容是否为空,如果工作表中存在其它对象(如图形对象、数据有效性、单元格批注等),不作为判断的基准。

    代码实测:

    代码截图:

    b91fef935b28f69d156a3b50db69640a.png

    运行截图:每删除一个工作表会告诉我们删除的个数。

    ff64a6781332be4b0d16667c54b6857d.png

    最后会告诉我们共删除了几个工作表:

    e2308dc541b13293bbe9ef326aa2742d.png

    今日内容回向:

    1 如何判断工作表为空呢?

    2 如何删除空白的工作表呢?

    展开全文
  • 用RECCOUNT()就行,另外还可以SELECT COUNT(*) AS 记录数 INTO CURSOR T1 FROM 表名IF T1.记录数=0 ?为空ENDIF或USE 表名GO BUTTIF BOF() ?为空ENDIF 
  • 判断一个链表是否为回文链表。

    千次阅读 2018-11-12 23:07:18
    判断一个链表是否为回文链表。 示例1: 输入:1-&gt;2 输出:false 示例2: 输入:1-&gt;2-&gt;2-&gt;1 输出:true 进阶: 你能否用O(n)时间复杂度和O(1)时间复杂度解决此题? 我刚...
  • 面试题:判断一个链表是否为回文结构面试题:判断一个链表是否为回文结构 面试题:判断一个链表是否为回文结构 这道题,因为需要遍历链表,所以时间复杂度肯定是O(n)的。如果使用空间复杂度为O(n)是非常简单的,无非...
  • 越来越难判断一个人的真心了。每天翻新暧昧的说辞,没事给你点小恩小惠,或者海誓山盟,其实都不能保证他真心喜欢你。使得许多女生饱受“他究竟喜欢我吗?”这一终极拷问的困扰。但喜欢终究是藏不住的。判断一个男生...
  • Vba设置一个按钮打开文件夹遍历其中所有的信息,并判断一个单元格是否为空。显示出来。 不会做啊。求大神帮帮我。
  • 表A与表B关联出一个表C,表C除了有AB表的外键,还有自己的属性,现在表C是的,没有任何数据,我要怎么判断表C是的呢 ![图片说明](https://img-ask.csdn.net/upload/201711/18/1510995969_318406.png) ![图片...
  • 6.4HQL的多表查询对象之间总是有各种各样的关系,关联关系是类之间最...6.4.1表之间的关联关系在数据库joblog中用到了3个表:student(学生表)、course(课程表)和sc(选课表)。这些表的详细信息见6.1.1节“示例中用到...
  • 简单的例子: 这是xinjian1.xlsx ... 问题1:我想找到是否在读的学生,而且不用等不等于“是”来判断,而是用某单元格是否为空判断。 第种方式是判断该单元格类型是否为float,第二种方式是is np.nan...
  • 问题解决:--循环每列FOR cc IN (SELECT utcs.Column_NAMEFROM User_Tab_Columns utcsWHERE utcs.TABLE_NAME = UPPER('cux_items_temp1')) LOOPL_Curr_Col_Name := cc.Column_name;--循环每行FOR L_Loop_Number ...
  • 判断表格中的的某一个字段为空 2.如果为空的话,整行的样式设置为红色 这是表格中的一个字段 <th data-options="field:'YXDH', title:'院校代号', width:60"></th> tb是table的id,给$("#tb")....
  • 我开始写了一个触发器,要判断SSO_SP_LIST中MASTER_SESS_ID字段值与我要在SSO_MASTERS_INF中删除的记录的MASTER_SESS_ID字段值相等的记录是否为空,我select了该记录的MASTER_SESS_ID字段,放入变量v(字段MASTER...
  • 二、一个表有多列,每列的每行都有可能是NULL(除主键),我现在要更新这个表中所有为NULL的为空('') 有什么好方法? 以前只知道一列一列判断更新,想知道有没有批量的方法,毕竟表多列多,一列一列要写N多语句...
  • 当我们从数据库中取出一行数据的时候,一开始它们还是一个DataRow,或者是一个DataReader我们要需地把它们一个一个转换成C#语言中我们所需要的类型。 如dr["content"].TosString(); 而数据库中的这个content字段...
  • 请教hql对多表查询问题本帖最后由 abcxiaoye 于 2015-01-25 22:33:10 编辑建了三个表tb_directory(id,name),tb_category(id,directoryId,..),tb_info(id,categoryId,...)并建立对多关系。建立Directory实体的set...
  • 判断android SQLite中的表是否为空

    千次阅读 2016-10-20 15:18:26
    SQLite中的Cursor千万不能使用...判断是否为空的方法是 Cursor.getCount()这么一个简单的函数,如果是0,表示Cursor为空;如果非0,则表示Cursor不为空。 代码如下 int number=0; Cursor c = db.rawQuery("s
  • 完成以下代码,判断一个整数是否是奇数:public boolean isOdd(int i)看过《编程珠玑》的人都知道这道题的答案和其中极为简单的道理。最普遍的风格,如下:这个函数的定义要求返回一个布尔类型的值。而 if 后面的...
  • 官方手册里早已经给了答案,那就是靠lua内置的next函数 即如此用: a = {} if next(a) == nil then next其实就是pairs遍历table时...于是封装后判断的lua table是否为空的函数如下: function tableIsEmpty(t) ...
  • hibernate中一个购物车A表另一个是订单B表 这两个表之间没有主外键关系 我在hibernate中添加了一对多的关系映射配置我在B表的set集合中添加了多个a对象 然后将b对象save 这时看数据库 两个表的数据都添加成功了 不过...
  • 一个老师教许多学生,一个学生被许多老师教,一个学生有好多书,同一种书被许多同学拥有.要查询教拥有书"a"的学生的老师!Hql语句:SELECT t FROM Teacher t join t.students s join s.books b where b.name = 'a'解释:...
  • 在这里记录一下怕后面自己忘了, 直接看代码吧 ,这是我数据库需要查询的两张 //库区 select* from Reservoir ... //将多个查询出的字段拼接到一个字段中 select c.ReservoirID,c.ReservoirN...
  • 现有三张表 TLXPURCHASE.采购事项审批,...java中定义了两实体类,ActivityPO和PurchasesPO,在ActivityPO类中定义了private Set purchases;// 采购事项字段。映射文件中配置了:outer-join="...
  • 一个select查询是要多查询的,然后要找出某一中的某一字段是否为空,或者不为空的情况。为空则为未使用,不为空则为已使用。 可以使用 is null 和is not null 如: 1、select * from B LEFT JOIN A on B.NO = ...
  • 作者:小 琛 欢迎转载,请标明出处 题目: 思路一: 该题目的最后一句话目的为降低难度,我们完全可以就这句话定义一个...1、因为我们遍历链表的条件是一个指针是否为空,所以记录数量的count的值在第一次遍历后...
  • 若均有环,则有两种相交情况,环外相交,转化无环链相交问题,若环内相交,则在环内判断,以其中一个环的入环节点往下走,看能否遇到另一个环的入环节点,不能则返回;3.一个有环,一个无环,则肯定不相交。
  • 对象之间总是有各种各样的关系,关联关系是类...6.4.1 表之间的关联关系在数据库joblog中用到了3个表:student(学生表)、course(课程表)和sc(选课表)。这些表的详细信息见6.1.1节“示例中用到的默认数据库表和数据”...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,585
精华内容 1,034
关键字:

判断一个表是否为空