11.6---矩阵查找元素(CC150)

思路,一旦提到查找就要想到二分查找。

    public static int[] findElement(int[][] a, int n, int m, int key) {
        // write code here
        int[] res = new int[2];
        for(int i = 0;i < n;i++){
            int left = 0;
            int right = m - 1;
            while(left <= right){
                int mid = (left + right) / 2;
                if(key < a[i][mid]){
                    right = mid -1;
                }
                else if (key > a[i][mid]){
                    left = mid + 1;
                }
                else{
                    res[0] = i;
                    res[1] = mid;
                    break;
                }
            }
        }

        return res;
    }

时间: 2024-12-22 05:07:53

11.6---矩阵查找元素(CC150)的相关文章

9.11排序与查找(六)——给定M*N矩阵,每一行、每一列都按升序排列,找出某元素

/** * 功能:给定M*N矩阵,每一行.每一列都按升序排列,找出某元素. */ 两种方法: 方法一: /** * 思路:若列的末端大于x,那么x位于该列的左边:若行的开头小于x,那么x位于列的下边.从矩阵中的子矩阵中查找元素. * @param matrix * @param elem * @return */ public static boolean findElement(int[][] matrix,int elem){ int row=0; int col=matrix[0].len

使用再哈希算法查找元素

使用再哈希算法查找元素: /* hash search, using rehash method if find k, return if not find, d=(d+step)%m, rehash find */ int SearchHash(HashTable H, KeyType k) { int d, d1, m; m = H.tableSize; d = d1 = k%m; while(H.data[d].key != -1) { if(H.data[d].key == k) //h

_DataStructure_C_Impl:在顺序表中查找元素

// _DataStructure_C_Impl:Search #include<stdio.h> #include<stdlib.h> #define MaxSize 100 #define IndexSize 20 typedef int KeyType; //元素的定义 typedef struct{ KeyType key; }DataType; //顺序表的类型定义 typedef struct{ DataType list[MaxSize]; int length; }

python--通过xpath相对节点位置查找元素(续)

之前写过相对父元素及下一个兄弟元素的方法. 这次补充一下xpath相对节点位置查找元素的所有方法.例子就不举了,自己可以去练练. xpath相对节点查找方法: 1.xpath('./ancestor::*')查找当前节点的所有先辈节点,即父节点或祖父节点 2.xpath('./ancestor-or-self::*')查找当前节点的所有先辈节点以及本身 3.xpath('./attribute::*')获取当前节点的所有属性 4.xpath('./child::*')查找当前节点的所有子节点 5

JavaScript 查找元素

JavaScript 查找元素 查询单个元素document.getElementById 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <!DOCTYPE html> <html>     <head>         <title>访问元素</title>         <meta charset="UTF-8"

javascript中通过className灵活查找元素 例如我们要把根据class来进行修改样式

原文:javascript中通过className灵活查找元素 例如我们要把根据class来进行修改样式 一.背景:一个表单中,要修改一些li中有class=box的样式,将它的background设置为red红色.一般的做法是我们可以先找到父级元素 ,然后由父级元素找到所有相关tagName,最后,来一个if判断,如果class属性为box,则修改之 var oUl = document.getElementById("ul1");                          

算法--有序矩阵查找指定数

第18节 有序矩阵查找练习题 现在有一个行和列都排好序的矩阵,请设计一个高效算法,快速查找矩阵中是否含有值x. 给定一个int矩阵mat,同时给定矩阵大小nxm及待查找的数x,请返回一个bool值,代表矩阵中是否存在x.所有矩阵中数字及x均为int范围内整数.保证n和m均小于等于1000. 测试样例: [[1,2,3],[4,5,6],[7,8,9]],3,3,10 返回:false Java (javac 1.7) 代码自动补全 1 import java.util.*; 2 3 public

查找元素在list中的位置以及折半查询

问题 查找某个值在list中的位置 解决思路 可以用折半查询的方法解决此问题. 解决(Python) #! /usr/bin/env python #coding:utf-8 #折半查找某个元素在list中的位置 def half_search(lst,value,left,right): length = len(lst) while left<right: middle = (right-left)/2 if lst[middle]>value: right = middle-1 elif

二分法查找元素位置

普通二分法查找元素: #include <stdio.h> #include <stdlib.h> int BinarySearch(int* a, int n, int pos) { int left = 0; int right = n-1; while (left <= right) { int mid = left+(right-left)/2; if(pos == a[mid]) { return mid; } else if(pos < a[mid]) {