鱼C论坛

 找回密码
 立即注册
查看: 3484|回复: 2

这种输入格式该怎么处理

[复制链接]
发表于 2017-10-28 20:34:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
【问题描述】设定整数数组B[m+1][n+1]的数据在行列方向上都按从小到大的顺序排序,且整型变量x中的数据在B中存在。试设计一个算法,找出一对满足B[i][j]=x的i,j值。
【输入形式】一个二维数组,一个x值
【输出形式】x在二维数组的位置,i和j的值
【样例输入】1 2 3;4 5 6;7 8 9   x=5

【样例输出】i=2 j=2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-1 02:30:12 | 显示全部楼层
本帖最后由 darian365 于 2017-11-1 02:33 编辑

假设你有一个二维矩阵,并且行列都升序排列。找出具体具体元素在军阵中的位置。代码可以参考如下。
public class Solution {
    /**
     * @param matrix, a list of lists of integers
     * @param target, an integer
     * @return a boolean, indicate whether matrix contains target
     */
    public boolean searchMatrix(int[][] matrix, int target) {
        // write your code here
        if (matrix == null || matrix.length == 0) {
            return false;
        }
        if (matrix[0] == null || matrix[0].length == 0) {
            return false;
        }

        int row = matrix.length;
        int column = matrix[0].length;

        int start = 0;
        int end = row * column - 1;
        int mid;

        while (start + 1 < end) {
            mid = start + (end - start) / 2;
            int number = matrix[mid / column][mid % column];
            if (number == target) {
                return true;
            } else if (number < target) {
                start = mid;
            } else {
                end = mid;
            }
        }

        if (matrix[start / column][start % column] == target) {
            return true;
        } else if (matrix[end / column][end % column] == target) {
            return true;
        }
        return false;
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-15 17:21:00 | 显示全部楼层
最简单的处理方式就是把他们当成char,然后根据输入判断是数字还是分割符号,还是x啥的其他,数字的话就把char转化成int
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 10:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表