Finding adjacent elements in a 2d array and counting them.
up vote
2
down vote
favorite
Im stumped on what to do for this part of my homework and could really use some help. I need to cycle through a given 2d array and find all similar elements that are adjacent to another and count that so for example
AA--B
AA--B
-AA--
----C
So the count would be 3 one for the As one for the Bs and one for the C, I just kinda need an idea where to start So far i have
public static int howManyOrganisms(char image){
int count = 0;
for (int i = 0; i < image.length; i++) {
for (int j = 0; j < image[i].length; j++) {
if(image[i][j] != '-') {
count++;
}
System.out.println();
}
return howManyOrganisms(image, count);
}
}
I need help figuring out how to track the total number of elements that are within contact of one another (so left, right, down, up) being another similar element.
java arrays for-loop recursion multidimensional-array
add a comment |
up vote
2
down vote
favorite
Im stumped on what to do for this part of my homework and could really use some help. I need to cycle through a given 2d array and find all similar elements that are adjacent to another and count that so for example
AA--B
AA--B
-AA--
----C
So the count would be 3 one for the As one for the Bs and one for the C, I just kinda need an idea where to start So far i have
public static int howManyOrganisms(char image){
int count = 0;
for (int i = 0; i < image.length; i++) {
for (int j = 0; j < image[i].length; j++) {
if(image[i][j] != '-') {
count++;
}
System.out.println();
}
return howManyOrganisms(image, count);
}
}
I need help figuring out how to track the total number of elements that are within contact of one another (so left, right, down, up) being another similar element.
java arrays for-loop recursion multidimensional-array
2
You're on the right track: 1) GOAL: count #/adjacent elements. 2) Define a function. EXAMPLE:howManyOrganisms()
. 3) Create some loops to examine every column in every row. 4) For each element, check up, down, right and left. If adjacent to one or more, then add to count. 5) Optimize (do you need to check "up" for 1st row, or "right" for last column, etc).
– paulsm4
Nov 19 at 20:22
1
Seems like a classis 'flood fill' algorithm modification. Check this
– Victor Gubin
Nov 19 at 20:33
add a comment |
up vote
2
down vote
favorite
up vote
2
down vote
favorite
Im stumped on what to do for this part of my homework and could really use some help. I need to cycle through a given 2d array and find all similar elements that are adjacent to another and count that so for example
AA--B
AA--B
-AA--
----C
So the count would be 3 one for the As one for the Bs and one for the C, I just kinda need an idea where to start So far i have
public static int howManyOrganisms(char image){
int count = 0;
for (int i = 0; i < image.length; i++) {
for (int j = 0; j < image[i].length; j++) {
if(image[i][j] != '-') {
count++;
}
System.out.println();
}
return howManyOrganisms(image, count);
}
}
I need help figuring out how to track the total number of elements that are within contact of one another (so left, right, down, up) being another similar element.
java arrays for-loop recursion multidimensional-array
Im stumped on what to do for this part of my homework and could really use some help. I need to cycle through a given 2d array and find all similar elements that are adjacent to another and count that so for example
AA--B
AA--B
-AA--
----C
So the count would be 3 one for the As one for the Bs and one for the C, I just kinda need an idea where to start So far i have
public static int howManyOrganisms(char image){
int count = 0;
for (int i = 0; i < image.length; i++) {
for (int j = 0; j < image[i].length; j++) {
if(image[i][j] != '-') {
count++;
}
System.out.println();
}
return howManyOrganisms(image, count);
}
}
I need help figuring out how to track the total number of elements that are within contact of one another (so left, right, down, up) being another similar element.
java arrays for-loop recursion multidimensional-array
java arrays for-loop recursion multidimensional-array
asked Nov 19 at 20:15
Forrest Walker
304
304
2
You're on the right track: 1) GOAL: count #/adjacent elements. 2) Define a function. EXAMPLE:howManyOrganisms()
. 3) Create some loops to examine every column in every row. 4) For each element, check up, down, right and left. If adjacent to one or more, then add to count. 5) Optimize (do you need to check "up" for 1st row, or "right" for last column, etc).
– paulsm4
Nov 19 at 20:22
1
Seems like a classis 'flood fill' algorithm modification. Check this
– Victor Gubin
Nov 19 at 20:33
add a comment |
2
You're on the right track: 1) GOAL: count #/adjacent elements. 2) Define a function. EXAMPLE:howManyOrganisms()
. 3) Create some loops to examine every column in every row. 4) For each element, check up, down, right and left. If adjacent to one or more, then add to count. 5) Optimize (do you need to check "up" for 1st row, or "right" for last column, etc).
– paulsm4
Nov 19 at 20:22
1
Seems like a classis 'flood fill' algorithm modification. Check this
– Victor Gubin
Nov 19 at 20:33
2
2
You're on the right track: 1) GOAL: count #/adjacent elements. 2) Define a function. EXAMPLE:
howManyOrganisms()
. 3) Create some loops to examine every column in every row. 4) For each element, check up, down, right and left. If adjacent to one or more, then add to count. 5) Optimize (do you need to check "up" for 1st row, or "right" for last column, etc).– paulsm4
Nov 19 at 20:22
You're on the right track: 1) GOAL: count #/adjacent elements. 2) Define a function. EXAMPLE:
howManyOrganisms()
. 3) Create some loops to examine every column in every row. 4) For each element, check up, down, right and left. If adjacent to one or more, then add to count. 5) Optimize (do you need to check "up" for 1st row, or "right" for last column, etc).– paulsm4
Nov 19 at 20:22
1
1
Seems like a classis 'flood fill' algorithm modification. Check this
– Victor Gubin
Nov 19 at 20:33
Seems like a classis 'flood fill' algorithm modification. Check this
– Victor Gubin
Nov 19 at 20:33
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
In each iteration, you can use your i,j variables to "navigate" the 2d plane and see if any interacting items are the same. In each iteration you would check the following indexes to see if they are the same:
- image[i-1][j] (one row up)
- image[i+1][j] (one row down)
- image[i][j-1] (one left)
- image[i][j+1] (one right)
Of course for all of these statements first you should check if +1/-1 is still within the size of your matrix, otherwise you will end up with out of bounds exception.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53381995%2ffinding-adjacent-elements-in-a-2d-array-and-counting-them%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
In each iteration, you can use your i,j variables to "navigate" the 2d plane and see if any interacting items are the same. In each iteration you would check the following indexes to see if they are the same:
- image[i-1][j] (one row up)
- image[i+1][j] (one row down)
- image[i][j-1] (one left)
- image[i][j+1] (one right)
Of course for all of these statements first you should check if +1/-1 is still within the size of your matrix, otherwise you will end up with out of bounds exception.
add a comment |
up vote
1
down vote
In each iteration, you can use your i,j variables to "navigate" the 2d plane and see if any interacting items are the same. In each iteration you would check the following indexes to see if they are the same:
- image[i-1][j] (one row up)
- image[i+1][j] (one row down)
- image[i][j-1] (one left)
- image[i][j+1] (one right)
Of course for all of these statements first you should check if +1/-1 is still within the size of your matrix, otherwise you will end up with out of bounds exception.
add a comment |
up vote
1
down vote
up vote
1
down vote
In each iteration, you can use your i,j variables to "navigate" the 2d plane and see if any interacting items are the same. In each iteration you would check the following indexes to see if they are the same:
- image[i-1][j] (one row up)
- image[i+1][j] (one row down)
- image[i][j-1] (one left)
- image[i][j+1] (one right)
Of course for all of these statements first you should check if +1/-1 is still within the size of your matrix, otherwise you will end up with out of bounds exception.
In each iteration, you can use your i,j variables to "navigate" the 2d plane and see if any interacting items are the same. In each iteration you would check the following indexes to see if they are the same:
- image[i-1][j] (one row up)
- image[i+1][j] (one row down)
- image[i][j-1] (one left)
- image[i][j+1] (one right)
Of course for all of these statements first you should check if +1/-1 is still within the size of your matrix, otherwise you will end up with out of bounds exception.
answered Nov 19 at 20:24
peterxz
104110
104110
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53381995%2ffinding-adjacent-elements-in-a-2d-array-and-counting-them%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
You're on the right track: 1) GOAL: count #/adjacent elements. 2) Define a function. EXAMPLE:
howManyOrganisms()
. 3) Create some loops to examine every column in every row. 4) For each element, check up, down, right and left. If adjacent to one or more, then add to count. 5) Optimize (do you need to check "up" for 1st row, or "right" for last column, etc).– paulsm4
Nov 19 at 20:22
1
Seems like a classis 'flood fill' algorithm modification. Check this
– Victor Gubin
Nov 19 at 20:33